如何将数组转换为数据框
How to convert array to dataframe
我之前代码的输出。
from pandas import DataFrame
cursor.execute("SELECT * FROM DOCTOR")
row = cursor.fetchall()
row
如何将数组转换为数据框。预期输出如下图所示。
如何将数组转换为数据帧。
您似乎在使用来自 SQL 客户端的普通光标
Pandas 有自己的 read_sql
function,它包装了一个 SQL 客户端库和 returns 一个 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
import numpy as np
df = DataFrame(data=np.array(row),
index=np.arange(len(row)),
columns=['Doctor_id','Doctor_Name','Doctor_Spl'])
我之前代码的输出。
from pandas import DataFrame
cursor.execute("SELECT * FROM DOCTOR")
row = cursor.fetchall()
row
如何将数组转换为数据框。预期输出如下图所示。
如何将数组转换为数据帧。
您似乎在使用来自 SQL 客户端的普通光标
Pandas 有自己的 read_sql
function,它包装了一个 SQL 客户端库和 returns 一个 Dataframe
如果您从 read_sql_table
- https://pandas.pydata.org/pandas-docs/stable/getting_started/comparison/comparison_with_sql.html#compare-with-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
import numpy as np
df = DataFrame(data=np.array(row),
index=np.arange(len(row)),
columns=['Doctor_id','Doctor_Name','Doctor_Spl'])