【问题标题】:How to convert array to dataframe如何将数组转换为数据框
【发布时间】:2021-05-27 13:17:39
【问题描述】:

我之前代码的输出。

from pandas import DataFrame
cursor.execute("SELECT * FROM DOCTOR") 
row = cursor.fetchall()
row

如何将数组转换为数据框。预期输出如下图所示。

如何将数组转换为数据框。

【问题讨论】:

    标签: python arrays dataframe data-science


    【解决方案1】:
    import numpy as np
    
    df = DataFrame(data=np.array(row), 
                   index=np.arange(len(row)), 
                   columns=['Doctor_id','Doctor_Name','Doctor_Spl'])
    

    【讨论】:

      【解决方案2】:

      您似乎正在使用来自 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 查询

      【讨论】:

        【解决方案3】:

        将获取的行转换为 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 :)
        

        【讨论】:

          【解决方案4】:

          这可以使用pandas.DataFrame() 方法完成。
          在您的情况下,它看起来像这样:

          DataFrame(row, columns=('Doctor_id', 'Doctor_Name', 'Doctor_Spl'))
          

          【讨论】:

            【解决方案5】:

            一种可能的解决方案:

            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
            

            【讨论】:

              猜你喜欢
              • 2021-08-21
              • 2019-02-11
              • 1970-01-01
              • 2020-09-21
              • 2022-11-04
              • 2021-02-10
              • 2014-03-23
              相关资源
              最近更新 更多