Python Pandas如何为DataFrame新增列,按Select列取值引用对应列值
解决方案
方法1:使用pandas lookup 方法(性能最优,适合大数据量)
直接根据行索引和Select列对应的列名取值,代码如下:
import pandas as pd # 假设你的原始DataFrame名称为df # 如果你的数值列列名为字符串类型,需要将Select列值转为字符串匹配 df['Value'] = df.lookup(df.index, df['Select'].astype(str)) # 如果你的数值列列名本身是整数类型,不需要转类型,直接用下面的代码即可 # df['Value'] = df.lookup(df.index, df['Select'])
方法2:使用apply逐行处理(逻辑直观,适合小数据量)
逐行读取Select的值,再取对应列的数值:
df['Value'] = df.apply(lambda row: row[str(row['Select'])] if isinstance(df.columns[1], str) else row[row['Select']], axis=1)
执行完以上任意一种方法后,得到的df就是你需要的包含Value列的目标结果。
内容的提问来源于stack exchange,提问作者LostinSpatialAnalysis
相关产品推荐
相关产品推荐

