[英]Best method of converting Pandas dataframe into list of dictionaries for each column
我有一个 pandas dataframe 没有已知的尺寸/形状。 我需要将此 dataframe 转换为具有以下布局的字典列表:
[
{"heading": column1name, "values":[list of column 1 values]},
{"heading": column2name, "values":[list of column 2 values]},
...and so on
]
我目前正在通过使用 for 循环遍历每一列并将字典附加到列表中来执行此操作:
def sendHeadingsAndValues():
columns = list(USER_DATA.columns.values)
dd_columnList = []
for column in columns:
dd_columnList.append({"heading": column, "values": USER_DATA[column].to_list()})
return dd_columnList
这对于具有多列的大型数据框来说效率相当低,所以我想知道是否有更快的方法来做到这一点?
我会很感激任何建议!
您可以将 pandas.DataFrame.to_dict 与列表理解一起使用。见下文:
import pandas as pd
d=df.to_dict('list')
res=[{'heading':i, 'values':k} for i, k in d.items()]
例子:
df=pd.DataFrame({'a':[10,20,30,40], 'b':[100,200,300,400]})
>>>print(df)
a b
0 10 100
1 20 200
2 30 300
3 40 400
d=df.to_dict('list')
res=[{'heading':i, 'values':k} for i, k in d.items()]
>>> print(res)
[{'heading': 'a', 'values': [10, 20, 30, 40]}, {'heading': 'b', 'values': [100, 200, 300, 400]}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.