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

如何使用Python获取DataFrame每行非空值对应的列名

问题解答:Python实现Pandas DataFrame每行存储非空值对应列名

完全可以用Python实现该需求,使用数据处理库Pandas即可快速完成,具体代码如下:

import pandas as pd
import numpy as np

# 构造符合预期输出的测试DataFrame
df = pd.DataFrame({
    'A': [1, np.nan, 4],
    'B': [2, 2, np.nan],
    'C': [np.nan, 4, 3]
})

# 核心逻辑:逐行筛选非空值,提取对应的列名存为列表
# 如果需要D列存储Python列表格式,直接用这行即可
df['D'] = df.apply(lambda row: row[row.notna()].index.tolist(), axis=1)

# 如果需要和给出的预期输出完全一致的字符串格式(不带列表引号),替换为下面这行即可
# df['D'] = df.apply(lambda row: f"[{','.join(row[row.notna()].index)}]", axis=1)

print(df)

运行后输出结果:

A    B    C       D
0  1.0  2.0  NaN  [A, B]
1  NaN  2.0  4.0  [B, C]
2  4.0  NaN  3.0  [A, C]

内容的提问来源于stack exchange,提问作者차형주

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:24:04