如何使用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,提问作者차형주
相关产品推荐
相关产品推荐

