数据框总和(axis = 1)返回Nan值

时间:2019-11-24 11:39:24

标签: python pandas numpy dataframe

我正在尝试对第二列('ALL_PPA')求和,并按Numéro_département分组 这是我的代码:

df.fillna(0,inplace=True)
df = df.loc[:, ('Numéro_département','ALL_PPA')]
df = df.groupby('Numéro_département').sum(axis=1)
print(df)

我的DF充满了数字,我没有任何NaN值,但是当我应用函数df.sum(axis=1)时,某些行似乎具有NaN

这是sum()之前我的标签的样子:

Screenshot 1

sum()之后

Screenshot 2

我的问题是:我应该怎么做?我尝试使用numpy库,但是它无法正常工作

2 个答案:

答案 0 :(得分:0)

将数据框的第一行(就像其中的列名一样)拖放到int上。现在,由于混合的数据类型,它是一个对象:

df2 = df.iloc[1:].astype(int).copy()

然后,应用groupby.sum()并同时指定列:

df3 = df2.groupby('Numero_department')['ALL_PPA'].sum()

答案 1 :(得分:0)

我认为在对DF求和之前使用.dropna()将有助于删除具有axis=值的任何行或列(取决于您选择的nan)。根据提供的屏幕截图,请删除DF的第一行,因为它是string