按行计算非na值,并将总计保存到pandas中的新变量中

时间:2019-07-09 15:49:29

标签: python pandas dataframe count

我是python的新手,我试图计算每行的非na值,并将总数保存到新变量中。

我有数据框:

data = {'x1': ["Yes", "Yes", "No"],
       'x2': ["Yes",np.nan, "Yes"],
       'x3': [np.nan, np.nan, "No"]}
df = pd.DataFrame(data, columns = ['x1', 'x2', 'x3'])

print(df)
    x1   x2   x3
0  Yes  Yes  NaN
1  Yes  NaN  NaN
2   No  Yes   No

我想做的是计算每一行的答案数量,然后将总数保存到新变量中。所需的输出如下所示:

  x1   x2   x3   Total
0  Yes  Yes  NaN     2
1  Yes  NaN  NaN     1
2   No  Yes   No     3

这似乎很简单,但我无法弄清楚。任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:3)

您只需将count()axis=1一起使用:

df['Total'] = df.count(axis=1)

收益:

    x1   x2   x3  Total
0  Yes  Yes  NaN      2
1  Yes  NaN  NaN      1
2   No  Yes   No      3