gpt4 book ai didi

python-3.x - 如何从 Pandas 数据框创建多值字典

转载 作者:行者123 更新时间:2023-12-04 19:08:19 26 4
gpt4 key购买 nike

假设我有一个带有 2 列(A 列和 B 列)的 pandas 数据框:
对于“A”列中的值,“B”列中有多个值。
我想为每个键创建一个包含多个值的字典,这些值也应该是唯一的。请建议我一种方法来做到这一点。

最佳答案

一种方法是按列 A 分组:

In [1]: df = pd.DataFrame([[1, 2], [1, 4], [5, 6]], columns=['A', 'B'])

In [2]: df
Out[2]:
A B
0 1 2
1 1 4
2 5 6

In [3]: g = df.groupby('A')

申请 tolist在每个组的 B 列上:
In [4]: g['B'].tolist()  # shorthand for .apply(lambda s: s.tolist()) "automatic delegation"
Out[4]:
A
1 [2, 4]
5 [6]
dtype: object

然后调用 to_dict在这个系列上:
In [5]: g['B'].tolist().to_dict()
Out[5]: {1: [2, 4], 5: [6]}

如果您希望这些是唯一的,请使用 unique (注意:这将创建一个 numpy 数组而不是列表):
In [11]: df = pd.DataFrame([[1, 2], [1, 2], [5, 6]], columns=['A', 'B'])

In [12]: g = df.groupby('A')

In [13]: g['B'].unique()
Out[13]:
A
1 [2]
5 [6]
dtype: object

In [14]: g['B'].unique().to_dict()
Out[14]: {1: array([2]), 5: array([6])}

其他替代方法是使用 .apply(lambda s: set(s)) , .apply(lambda s: list(set(s))) , .apply(lambda s: list(s.unique())) ...

关于python-3.x - 如何从 Pandas 数据框创建多值字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com