【发布时间】:2020-03-18 15:45:44
【问题描述】:
我一直在尝试在 Python 3.7 中使用 collection.Counter 或 value_counts 来执行类似下面的 df 的操作,但没有成功。到目前为止,这是我想要得到的一个例子:
IDs Col2 Col3
0 123 [A, A, B, B, C] {A:2, B:2, C:1}
1 456 [A, B, C, C] {A:1, B:1, C:2}
2 789 [A, A, A, D, D] {A:3, D:2}
然后我需要为每个对应行获取Col3 中的最大值,如果存在平局,则仅在新列中显示它并使用已关联的键。像这样的:
IDs Col2 Col3 Max
0 123 [A, A, B, B, C] {A:2, B:2, C:1} {A:2, B:2}
1 456 [A, B, C, C] {A:1, B:1, C:2} {C:2}
2 789 [A, A, A, D, D] {A:3, D:2} {A:3}
【问题讨论】:
-
你能做 df.to_dict() 并以可复制的形式分享数据框吗?
-
欢迎@niq13。为了改善您的问题并获得准确的答案您可以向我们展示如何构建数据框。
df = pd.DataFrame({'IDs':[123, 456, 789], 'Col12':[a, .]}) ....但是。您可以使用 pandas DataFrame 的 groupby 功能。df.groupby('IDs').count(), or df.groupby('IDs').max()然后选择右列
标签: python python-3.x pandas dictionary counter