我正在尝试将熊猫框架的分组列转换为字符串:
import pandas as pd
df = pd.DataFrame({
'date' : ['2018-01-01','2018-01-01','2018-01-02','2018-01-02'],
'product' : ['apple','banana','banana','pear'],
'price' : [100,200,300,400]
})
grouped_df = df.groupby('date').agg({'product': ['unique'], 'price': ['sum']}).reset_index()
grouped_df['product'] = grouped_df['product'].apply( lambda l: ";".join(l.tolist()) )
print(grouped_df.to_csv(header=False))
目标是在CSV中输出
apple;banana
而不是['apple', 'banana']
,但是当我尝试运行grouped_df['product'].apply( lambda l: ";".join(l.tolist()) )
时,会得到一个TypeError: ('sequence item 0: expected str instance, numpy.ndarray found', 'occurred at index unique')
。任何帮助,将不胜感激。
先感谢您。
最佳答案
尝试这样:
grouped_df['product'] = grouped_df['product']['unique'].apply(lambda x: ';'.join(x))
>>> grouped_df
date product price
unique sum
0 2018-01-01 apple;banana 300
1 2018-01-02 banana;pear 700
问题是您试图访问一个多级列,但跳过了
unique
级。因此,您实际上访问的是一个DataFrame
,但是您想访问一个Series
:>>> type(grouped_df['product'])
<class 'pandas.core.frame.DataFrame'>
>>> type(grouped_df['product']['unique'])
<class 'pandas.core.series.Series'>
关于python - 将 Pandas 分组列转换为字符串时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51719643/