我有一个数据帧,其标题为“Category”、“Factor1”、“Factor2”、“Factor3”、“Factor4”、“UseFactorA”、“UseFactorB”
“UseFactorA”和“UseFactorB”的值是字符串['Factor1'、'Factor2'、'Factor3'、'Factor4']之一,根据“Category”中的值设置了键
我想生成一列“Result”,它等于dataframe[UseFactorA]/dataframe[UseFactorB]
以下面的数据帧为例:
[Category] [Factor1] [Factor2] [Factor3] [Factor4] [useFactor1] [useFactor2]
A 1 2 5 8 'Factor1' 'Factor3'
B 2 7 4 2 'Factor3' 'Factor1'
“结果”系列应为[2,.2]
但是,我不知道如何将useFactor1和useFactor2的值输入到索引中来实现这一点——如果要使用的列是固定的,我只给出
df['Result'] = df['Factor1']/df['Factor2']
然而,当我试图给予
df['Results'] = df[df['useFactorA']]/df[df['useFactorB']]
我得到了错误
ValueError: Wrong number of items passed 3842, placement implies 1
有什么方法可以做我在这里尝试的事情吗
这里有一条线:
其工作原理是:
返回数据帧
返回一个序列
从序列中提取单个值
可能不是最漂亮的解决方案(因为有iterrows),但想到的是遍历因子集并在每个索引处设置“Result”值:
编辑:
另一种选择:
相关问题 更多 >
编程相关推荐