python - 按行计算非 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
这似乎很简单,但我无法弄清楚。任何帮助将不胜感激。
谢谢
解决方案
您只需要使用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
推荐阅读
- ios - 卡住:在 Mac 上的 Keychain Access 中向证书颁发机构请求证书
- dataframe - 如何在 Julia 中连接一组 DataFrame?
- python - 将年份作为 timedelta 单位添加以更改日期的优雅方式 - Pandas
- php - PHP动态调度邮件发送
- ruby-on-rails - 我应该将与 Graphql 上的 excel 导出/导入相关的请求放在哪里?
- javascript - 我们如何在 ngFor 中为材料表中的每一列提供过滤功能?
- python - Python x MySQL中插入查询代码中的预期输出结果不同?
- r - 通过 R 中的 3 个公共列合并多个数据帧
- java - Spring项目applicationContext.xml - 将一个bean注入另一个bean
- django - 显示 html / 将视图限制为组