我有一个庞大的Pandas数据框,其结构如下例所示:
import pandas as pd
df = pd.DataFrame({'col1': ['A', 'A', 'B', 'C', 'C', 'C'], 'col2': [1, 2, 5, 2, 4, 6]})
df
col1 col2
0 A 1
1 A 2
2 B 5
3 C 2
4 C 4
5 C 6
任务是建立一个字典,其中的元素col1
作为键,而对应的元素col2
作为值。对于上面的示例,输出应为:
A -> [1, 2]
B -> [5]
C -> [2, 4, 6]
虽然我写了一个解决方案
from collections import defaultdict
dd = defaultdict(set)
for row in df.itertuples():
dd[row.col1].append(row.col2)
我想知道是否有人使用内置的Pandas函数了解更多的“ Python原生”解决方案。
GroupBy.apply
与list
for一起使用,Series
然后Series.to_dict
:
d = df.groupby('col1')['col2'].apply(list).to_dict()
print (d)
{'A': [1, 2], 'B': [5], 'C': [2, 4, 6]}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句