2
У меня есть dataframe, где я хочу сгруппировать по первой части поля идентификатора. Например, у меня есть следующее:Pandas groupby slice строки
>>> 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
>>>
Как сгруппировать по первой букве поля идентификатора?
В настоящее время я могу это сделать, создав новый столбец, а затем группировка на этом, но я полагаю, есть более эффективный способ:
>>> df['GID']=df['ID'].str[:1]
>>> df.groupby('GID')['Value'].sum()
GID
A 10
B 13
C 9
Name: Value, dtype: int64
>>>
Спасибо, именно то, что я искал. Не понимал, что вы можете группироваться в такой серии. – AJG519
Или '.str [0]', поскольку вы просто хотите, чтобы первый –
@jezrael не забывал, что существует отличная разница между '.str [0]' и '.str [: 1]' в случае пустых строк ... –