如何在Pandas DataFrame中生成指定统计类新列?
Pandas DataFrame 两行需求解决方案
需求1:生成"<0"列,统计每行前18列中数值小于0的数量
通过索引截取前18列,配合布尔判断与行求和实现:
# 生成"<0"列,统计前18列每行小于0的实例数 df['<0'] = df.iloc[:, :18].lt(0).sum(axis=1)
df.iloc[:, :18]:精准截取DataFrame的前18列数据lt(0):返回布尔值矩阵,小于0的位置标记为True,其余为Falsesum(axis=1):按行求和,True被视为1、False视为0,最终得到每行小于0的计数
需求2:统计每行排除NaN的有效列总数
直接调用Pandas内置的count()方法,该方法默认忽略NaN值:
# 统计每行非NaN的有效列总数 df['valid_col_count'] = df.count(axis=1)
count(axis=1):按行遍历,仅统计非缺失值的列数量,自动过滤NaN
内容的提问来源于stack exchange,提问作者NolsN
相关产品推荐
相关产品推荐

