【发布时间】:2020-05-22 12:28:56
【问题描述】:
我有以下数据框,其中包含来自气象站的信息:
import pandas as pd
import numpy as np
df = pd.DataFrame({'Code Weather Station': ['1024', '1024', '1024', '2089',
'2089', '2089', '8974'],
'Instrumentation': ['Pluviometer-Analog', 'speedometer', 'incidence-sun',
'speedometer', 'Pluviometer', 'speedometer',
'Pluviometer']})
我想对来自每个气象站的仪器进行分组。
我尝试使用groupby,连同sum()函数,如下:
df_New = df.groupby('Code Weather Station', as_index=False)['Instrumentation'].sum()
结果符合预期。不过,我希望乐器之间有空格。
print(df_New)
Code Weather Station Instrumentation
1024 Pluviometer-Analogspeedometerincidence-sun
2089 speedometerPluviometerspeedometer
8974 Pluviometer
我希望输出是:
Code Weather Station Instrumentation
1024 Pluviometer-Analog speedometer incidence-sun
2089 speedometer Pluviometer speedometer
8974 Pluviometer
谢谢。
【问题讨论】:
-
试试
df.groupby('Code Weather Station')['Instrumentation'].apply(lambda x: ' '.join(x)) -
我试过了: df_New = df.groupby('Code Weather Station', as_index=False)['Instrumentation'].apply(lambda x: ' '.join(x)) 。但返回不是数据框类型。你有什么建议吗?
-
我也试过: df_New = pd.DataFrame(df.groupby('Code Weather Station')['Instrumentation'].apply(lambda x: ' '.join(x))) 。但是按列名索引很尴尬。
标签: python string pandas group-by