我有一个df(df.shape =(14762,35))。
Number Day Colour City ...
123 Monday Red London ...
234 Monday Blue Paris ...
234 Wednesday Yellow Paris ...
345 Tuesday Green Berlin ...
我正在尝试对df进行分组和汇总
Number Day Colour City ...
123 Monday Red London ...
234 Monday, Wednesday Blue, Yellow Paris ...
345 Tuesday Green Berlin ...
我正在使用
df.groupby('Number').agg(lambda s: ', '.join({*s}))
但是,我的新df形状为(5435,22)。问题出在聚合步骤lambda函数中。 groupby步骤工作正常。只是想知道为什么.agg或.join可能会删除某些列。我已经在groupby期间阅读了有关令人讨厌的列的信息,但我认为这不是问题所在。
我已经打印了.dtypes
,要删除的列是object
,int64
和float64
。
我正在使用Python 3.6.9和pandas 0.25.3。
答案 0 :(得分:1)
我希望float64
和int64
被删除,因为join
函数将引发TypeError
。您可能会遇到相同的问题,即也无法在其他join
列上使用object
。
您可以通过将汇总功能更改为-
来解决此问题。 lambda x: ', '.join([str(i) for i in x])