我有一个数据框,我想在ID字段的第一部分进行分组。例如,假设我有以下内容:
>>> import pandas as pd
>>> df=pd.DataFrame(data=[['AA',1],['AB',4],['AC',5],['BA',11],['BB',2],['CA',9]], columns=['ID','Value'])
>>> df
ID Value
0 AA 1
1 AB 4
2 AC 5
3 BA 11
4 BB 2
5 CA 9
>>>
如何按ID字段的第一个字母分组?
我现在可以通过创建一个新列然后对其进行分组来实现这一点,但我想有一种更有效的方法:
>>> df['GID']=df['ID'].str[:1]
>>> df.groupby('GID')['Value'].sum()
GID
A 10
B 13
C 9
Name: Value, dtype: int64
>>>
答案 0 :(得分:4)
您需要以某种方式创建分组键,而不一定是在DataFrame本身上,例如:
df.groupby(df.ID.str[:1])['Value'].sum()