2024-04-24 13:15:05 发布
网友
我有一个带有列表列的pandas数据帧,我想找到一种方法来返回一个数据帧,其中一列包含列表,另一列包含总计数。我的问题是如何将包含相同值的列表相加,例如,我想在最后找到['a'、'b']和['b'、'a']的总和。你知道吗
例如数据帧:
Lists Count ['a','b'] 2 ['a','c'] 4 ['b','a'] 3
将返回:
Lists Count ['a','b'] 5 ['a','c'] 4
名单不可更改。所以,排序并转换成元组
In [80]: df Out[80]: count lists 0 2 [a, b] 1 4 [a, c] 2 3 [b, a] In [82]: df['lists'] = df['lists'].map(lambda x: tuple(sorted(x))) In [83]: df Out[83]: count lists 0 2 (a, b) 1 4 (a, c) 2 3 (a, b) In [76]: df.groupby('lists').sum() Out[76]: count lists (a, b) 5 (a, c) 4
也可以使用集合(将它们强制为字符串之后)。你知道吗
df = pd.DataFrame({'Lists': [['a', 'b'], ['a', 'c'], ['b', 'a']], 'Value': [2, 4, 3]}) df['Sets'] = df.Lists.apply(set).astype(str) >>> df.groupby(df.Sets).Value.sum() Sets set(['a', 'b']) 5 set(['a', 'c']) 4 Name: Value, dtype: int64
名单不可更改。所以,排序并转换成元组
也可以使用集合(将它们强制为字符串之后)。你知道吗
相关问题 更多 >
编程相关推荐