【发布时间】:2021-05-27 13:17:39
【问题描述】:
我之前代码的输出。
from pandas import DataFrame
cursor.execute("SELECT * FROM DOCTOR")
row = cursor.fetchall()
row
如何将数组转换为数据框。
【问题讨论】:
标签: python arrays dataframe data-science
我之前代码的输出。
from pandas import DataFrame
cursor.execute("SELECT * FROM DOCTOR")
row = cursor.fetchall()
row
如何将数组转换为数据框。
【问题讨论】:
标签: python arrays dataframe data-science
import numpy as np
df = DataFrame(data=np.array(row),
index=np.arange(len(row)),
columns=['Doctor_id','Doctor_Name','Doctor_Spl'])
【讨论】:
您似乎正在使用来自 SQL 客户端的普通游标
Pandas 有自己的 read_sql function,它封装了一个 SQL 客户端库并返回一个 Dataframe
如果您以 read_sql_table - https://pandas.pydata.org/pandas-docs/stable/getting_started/comparison/comparison_with_sql.html#compare-with-sql 开头,您还可以直接从 Dataframe 对象执行大多数 SQL 查询
【讨论】:
将获取的行转换为 numpy 数组并使用它转换为数据帧
import numpy as np
import pandas as pd
cursor.execute("SELECT * FROM DOCTOR")
row = cursor.fetchall()
numpy_array_row = np.array(row)
data_frame = pd.DataFrame(numpy_array_row, columns=['Doctor_id', 'Doctor_Name', 'Doctor_Spl'])
# print your data_frame and voila :)
【讨论】:
这可以使用pandas.DataFrame() 方法完成。
在您的情况下,它看起来像这样:
DataFrame(row, columns=('Doctor_id', 'Doctor_Name', 'Doctor_Spl'))
【讨论】:
一种可能的解决方案:
rows = [
("D001", "TIM1", "orthopedic"),
("D002", "Ram", "General medicine"),
("D003", "Sarala", "gynaecology"),
("D004", "TIM", "Ayurvedic"),
("D005", "viny", "Hemeopathy"),
]
df = pd.DataFrame(rows, columns=["Doctor_id", "Doctor_Name", "Doctor_Spl"])
df.index += 1 # <-- if you need index starting from `1`
print(df)
打印:
Doctor_id Doctor_Name Doctor_Spl
1 D001 TIM1 orthopedic
2 D002 Ram General medicine
3 D003 Sarala gynaecology
4 D004 TIM Ayurvedic
5 D005 viny Hemeopathy
【讨论】: