我对Pandas汇总有问题。
我有4列为“ int”类型的列,其中一列为字符串。 我希望将那些具有int的对象求和,将那个具有字符串的对象求和。
我使用了下一个功能:
df = df.groupby(['Time', 'Id', 'Object', 'Alias', 'Type'],as_index=False).agg(lambda x : x.sum() if x.dtype=='int' else x.unique())
但是我遇到下一个错误:
ValueError: Function does not reduce
我发现了一些类似的问题,但是每个问题在聚合函数中只有一个操作。不知道如何使用我的建议。
答案 0 :(得分:0)
unique
不是聚合函数。汇总功能可减少数据的维度,例如sum
将数字列表缩减为单个数字,而unique
将数字列表缩减为可能较小的列表。
my_series = pd.Series([1, 2, 1, 3]) # 1-D
my_series.sum() # 7, a scalar
my_series.unique() # [1, 2, 3] still 1-D