繁体   English   中英

Pandas:将数据帧列转换为dict,col标题为dict键,col值为dict值

[英]Pandas: Convert dataframe columns into dict with col title as dict key and col values as dict values

我有一个数据框,看起来像:

      NAME              ID 
155  ARBITRARY_A    697381   
208  ARBITRARY_B    691820   
265  ARBITRARY_C    691782   
272  ARBITRARY_D    695593 

我想将其转换为字典列表,如下所示:

[{name:ARBITRARY_A, id:697381}, {name:ARBITRARY_B, id:691820},
 {name:ARBITRARY_C, id:691782}, {name:ARBITRARY_D, id:695593}]

进行此操作的最快/最佳方式是什么?

如注释中所示,可以使用pandas.DataFrame.to_dict() 在你的情况下,你需要orientrecord

码:

df.to_dict('record')

测试代码:

df = pd.read_fwf(StringIO(u"""
          NAME              ID
    155  ARBITRARY_A    697381
    208  ARBITRARY_B    691820
    265  ARBITRARY_C    691782
    272  ARBITRARY_D    695593"""),
                 header=1, index_col=0)

print(df)
print(df.to_dict('record'))

结果:

            NAME      ID
155  ARBITRARY_A  697381
208  ARBITRARY_B  691820
265  ARBITRARY_C  691782
272  ARBITRARY_D  695593

[{u'NAME': u'ARBITRARY_A', u'ID': 697381L}, {u'NAME': u'ARBITRARY_B', u'ID': 691820L}, {u'NAME': u'ARBITRARY_C', u'ID': 691782L}, {u'NAME': u'ARBITRARY_D', u'ID': 695593L}]

通过自己进行理解,你可以从中获得更多的表现

v = df.values.tolist()
c = df.columns.values.tolist()

[dict(zip(c, x)) for x in v]

[{'ID': 697381L, 'NAME': 'ARBITRARY_A'},
 {'ID': 691820L, 'NAME': 'ARBITRARY_B'},
 {'ID': 691782L, 'NAME': 'ARBITRARY_C'},
 {'ID': 695593L, 'NAME': 'ARBITRARY_D'}]

小的给定df
在此输入图像描述

更大的d1
在此输入图像描述

尝试:

df.to_dict()

如果这不会产生预期的结果,请尝试转置DataFrame:

df.T.to_dict()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM