如何获取Pandas DataFrame中Restriction列非NaN对应的Offer列值列表
实现代码
你只需要将原代码里的筛选条件替换为Restriction列非空的判断即可,pandas中推荐使用notna()方法来判断值不为NaN:
result = list('000' + df.loc[df['Restriction'].notna(), 'Offer'].astype(str))
逻辑说明
df['Restriction'].notna()会筛选出所有Restriction列不是NaN的行- 后续的取Offer列、转字符串、拼接前缀
000的逻辑和你原有的代码完全一致 - 运行后得到的结果正好是你需要的
['0001','0002']
如果你的环境使用老版本pandas,也可以替换为等价的pd.notnull(df['Restriction'])写法:
import pandas as pd result = list('000' + df.loc[pd.notnull(df['Restriction']), 'Offer'].astype(str))
内容的提问来源于stack exchange,提问作者SRJCoding
相关产品推荐
相关产品推荐

