【问题标题】:Create dataframe, get columns from the list创建数据框,从列表中获取列
【发布时间】:2021-06-27 09:38:05
【问题描述】:

我运行 PostgreSQL 查询以从表“city”中获取所有列名

SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = city

它返回列表,如下所示:

[('city_id',), ('city',), ('country_id',), ('last_update',)]

下一步是创建一个数据框,其中包含此列表中的列,(行将是另一个查询的结果)

像这样: df = pandas.DataFrame(data, columns=[_list_]

棘手的部分是我不能像往常一样写所有列 - 如果我希望它与具有不同列的另一个查询一起使用,它必须是一个可变值

【问题讨论】:

  • columns 中的参数pandas.DataFrame() 表示列名,_list_ 是什么?
  • 这是我通过查询得到的列表

标签: python pandas


【解决方案1】:

“默认”创建一个数据框然后重命名所有列实际上更容易

(我跳过了光标部分的连接和创建)

cursor.execute("SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = city")
results2 = cursor.fetchall()
print(results2)
df = pandas.DataFrame(results)
print(df)
df.columns = df.columns[:0].tolist() + results2
print(df)

结果:

[('city_id',), ('city',), ('country_id',), ('last_update',)]

     0                     1   2                          3
0    1       ACorua(LaCorua)  87 2021-03-22 12:50:22.061783
1  146  Donostia-SanSebastin  87 2021-03-22 12:50:22.061783
2  181                  Gijn  87 2021-03-22 12:50:22.061783
3  388       Ourense(Orense)  87 2021-03-22 12:50:22.061783
4  459  SantiagodeCompostela  87 2021-03-22 12:50:22.061783

      city_id                  city     country_id                last_update
0           1       ACorua(LaCorua)             87 2021-03-22 12:50:22.061783
1         146  Donostia-SanSebastin             87 2021-03-22 12:50:22.061783
2         181                  Gijn             87 2021-03-22 12:50:22.061783
3         388       Ourense(Orense)             87 2021-03-22 12:50:22.061783
4         459  SantiagodeCompostela             87 2021-03-22 12:50:22.061783

how to rename columns in pandas using a list

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-19
    • 2020-11-15
    • 1970-01-01
    • 2016-02-29
    • 2015-04-03
    • 1970-01-01
    相关资源
    最近更新 更多