You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中按行统计非NaN值并将结果存入新列?

解决按行统计DataFrame非NaN值并新增列的问题

嘿,别着急!这个需求用Pandas自带的方法就能轻松搞定,我给你一步步讲清楚~

首先,直接上可以运行的完整代码,你复制过去就能得到想要的结果:

import pandas as pd
import numpy as np

# 你的原始数据定义
data = {'x1': ["Yes", "Yes", "No"], 'x2': ["Yes",np.nan, "Yes"], 'x3': [np.nan, np.nan, "No"]}
df = pd.DataFrame(data, columns = ['x1', 'x2', 'x3'])

# 新增Total列,按行统计非NaN值数量
df['Total'] = df.count(axis=1)

# 打印结果
print(df)

运行后你会看到和你期望完全一致的输出:

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

小细节说明

  • df.count(axis=1)是核心:这个方法会按行(axis=1)统计非缺失值的数量,它会自动跳过所有NaN元素,完美匹配你的需求。
  • 如果没加axis=1,默认是axis=0,会变成按列统计,这也是很多新手容易踩的小坑,记得加上就行~
  • 要是之后你只想统计某几列的非NaN值,也可以指定列名,比如只统计x1和x2的话,写成df[['x1','x2']].count(axis=1)就可以,灵活性拉满~

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:38:02