0
该问题类似于一个询问here,但带有元组索引。 分组列表的列单指数正常工作:pandas groupby:使用元组索引来聚合列表
mydata = [{'idx': 'A', 'list_str': ['hi', 'babe']},
{'idx': 'A', 'list_str': ['take', 'a', 'walk']},
{'idx': 'A', 'list_str': []},
{'idx': 'B', 'list_str': ['on', 'the', 'wild', 'side']}]
df = pd.DataFrame(mydata)
grouped = df.groupby('idx')
print(grouped.agg({'list_str': lambda x: tuple(x)}))
随着预期输出:
然而,添加第二个指标不再起作用:
mydata = [{'idx': 'A', 'idx2': 'B', 'list_str': ['hi', 'babe']},
{'idx': 'A', 'idx2': 'B', 'list_str': ['take', 'a', 'walk']},
{'idx': 'A', 'idx2': 'B', 'list_str': []},
{'idx': 'B', 'idx2': 'C', 'list_str': ['on', 'the', 'wild', 'side']}]
df = pd.DataFrame(mydata)
grouped = df.groupby(('idx', 'idx2'))
print(grouped.agg({'list_str': sum}))
给出a ValueError
,Function does not reduce
。
这样做的正确方法是什么?
您是否尝试过的代码?这实际上给出了相同的确切的错误。 – nbubis
我确实尝试过,使用您提供的输入。您是否在groupby调用中使用了列表'[]'而不是元组'()'?或者,您的输入数据是错误构建的,因为它有两个单独的索引,而不是单个索引的元组? – jack6e
使用相同的'mydata'变量,和'df = pd.DataFrame(mydata); grouped = df.groupby(['idx','idx2']); print(grouped.agg({'list_str':sum}))'使用熊猫版本0.19.2给出同样的错误。 – nbubis