所以我是一个学习python的新手。基本上,我所做的只是遵循文档并亲自尝试类似。我创建了一个以名称和出生作为列的数据帧,并使用随机种子来填充它。但是当我尝试按名称对其进行分组并尝试返回唯一名称的总和值时,它只是给了我与之关联的所有随机数,而不是给我它的总和。
这是我的输出的样子:
Births
Names
Erdogan [188][180][172][56][192][74][199][76][103][144...
Jamal [97][191][176][65][58][163][164][81][157][102]...
Mehdi [160][151][175][80][186][164][134][180][70][66...
Yassir [68][76][154][126][77][52][142][60][124][71][5...
这是我的代码:
name = df.groupby('Names')
df = name.sum()
print(df)
检查列类型,如下所示
df.dtypes
如果Births
的数据类型是 OBJECT,则转换为int
,如下所示
df['Birth'] = df['Birth'].astype(int)
现在进行分组和求和
我试图猜测您的原始数据帧是什么,并设法得到类似的结果:
df = pd.DataFrame({'name':['a','d','a','d'],'Births':['[188]','[180]','[172]','[56]']})
print(df.groupby('name').sum())
# then the result is:
# Births
# name
# a [188][172]
# d [180][56]
问题是列"出生"的类型不正确,您需要将'[186]'
映射到186
,然后才能获得所需的结果。
df['Births'] = df['Births'].apply(lambda x: int(x[1:-1]))
print(df.groupby('name').sum())
# Births
# name
# a 360
# d 236