熊猫groupby切片的字符串

AJG*_*519 4 python dataframe pandas

我有一个数据框,我想按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
>>> 
Run Code Online (Sandbox Code Playgroud)

如何按ID字段的首字母分组?

我目前可以通过创建一个新列然后对其进行分组来做到这一点,但是我想有一种更有效的方法:

>>> df['GID']=df['ID'].str[:1]
>>> df.groupby('GID')['Value'].sum()
GID
A    10
B    13
C     9
Name: Value, dtype: int64
>>> 
Run Code Online (Sandbox Code Playgroud)

Jon*_*nts 5

您将需要以某种方式创建分组键,而不必在DataFrame本身上创建,例如:

df.groupby(df.ID.str[:1])['Value'].sum()
Run Code Online (Sandbox Code Playgroud)