Python Pandas : How to compile all lists in a column into one unique listPython的熊猫:如何在列的字典
返回分组名单与前一个问题的数据开始:
f = pd.DataFrame({'id':['a','b', 'a'], 'val':[['val1','val2'],
['val33','val9','val6'],
['val2','val6','val7']]})
print (df)
id val
0 a [val1, val2]
1 b [val33, val9, val6]
2 a [val2, val6, val7]
如何获取列表进入词典:
pd.Series([a for b in df.val.tolist() for a in b]).value_counts().to_dict()
{'val1': 1, 'val2': 2, 'val33': 1, 'val6': 2, 'val7': 1, 'val9': 1}
如何按组获得列表:
df.groupby('id')["val"].apply(lambda x: (list([a for b in x.tolist() for a in b]))
)
id
a [val1, val2, val2, val6, val7]
b [val33, val9, val6]
Name: val, dtype: object
我如何通过组作为类型的字典列表:
df.groupby('id')["val"].apply(lambda x: pd.Series([a for b in x.tolist() for a in b]).value_counts().to_dict())
返回:
id
a val1 1.0
val2 2.0
val6 1.0
val7 1.0
b val33 1.0
val6 1.0
val9 1.0
Name: val, dtype: float64
所需的输出我俯瞰什么? :
id
a {'val1': 1, 'val2': 2, 'val6': 2, 'val7': 1}
b {'val33': 1, 'val6': 1, 'val9': 1}
Name: val, dtype: object
请注意,我不打算速度在这里,我只是解释为何申请没有表现你所期望的方式。 – ayhan
并不意味着打扰,但为什么我得到结果'dict'的bulltin-methon-values,我怎么能打印像你这样的结果? – ileadall42
@Tangfeifan这似乎是一个已修复的错误https://github.com/pandas-dev/pandas/issues/16741我认为0.21版还没有发布。 – ayhan