首页 > 解决方案 > 按行计算非 na 值并将总计保存到 pandas 中的新变量

问题描述

我是 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

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

谢谢

标签: pythonpandasdataframecount

解决方案


您只需要使用count()with 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

推荐阅读