如何将数组转换为数据框

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'])