python - 从其他列中的值获取列索引 nr
问题描述
我对 python 和 pandas 比较陌生,所以我可能对所有可能性没有完全理解,并且希望能得到提示如何解决以下问题:
我有一个df
这样的:
Jan Feb Mar Apr i j
a 100 200 250 100 1 0.3
b 120 130 90 100 3 0.7
c 10 30 10 20 2 0.25
我想构造一个列,该列采用具有索引的列,df['i']
然后将所选列中的值乘以 df['j']
. 我想建立一个像这样的表(df['k']
蜜蜂构造的列):
Jan Feb Mar Apr i j k
a 100 200 250 100 1 0.3 60
b 120 130 90 100 3 0.7 70
c 10 30 10 20 2 0.25 2.5
(行a
df['k']=200*0.3
( df['Feb']*df['j']
)、行b
df['k']=100*0.7
( df['Apr']*df['j']
) 和行c
df['k']=10*0.25
( df['Mar']*df['j']
))
in 的值df['i']
将始终是一个整数值,所以我很想根据 in 的值使用列的位置df['i']
。
解决方案
IIUC,DataFrame.rename
然后我们可以使用DataFrame.lookup
to map
。最后我们使用Series.mul
df['k'] = df['j'].mul(df.rename(columns = dict(zip(df.columns,
range(len(df.columns)))))
.lookup(df.index, df['i']))
print(df)
输出
Jan Feb Mar Apr i j k
a 100 200 250 100 1 0.30 60.0
b 120 130 90 100 3 0.70 70.0
c 10 30 10 20 2 0.25 2.5
选择:
df['j'].mul(df.iloc[:,df['i']].lookup(df.index,
df['i'].map(dict(zip(range(len(df.columns)),
df.columns)))))
推荐阅读
- c# - SqlNullValueException:数据为空
- python - FFmpeg 使用 python 缩放
- swift - Swift + Xcode + macOS:非功能预览。错误与每个 Xcode 的 .environmentObject 相关
- flutter - Flutter我无法读取带有本地文件的readasbytessync的图像
- flutter - 方法 ElevatedButton 没有定义?
- python - 如何获取许多数据框的通用索引并返回它们的行和数据框?
- python - python中的总平方和(TSS)
- python - 对于长数据集,如何在循环中拉取文件中某些内容的位置?
- java - 如何将androidx文件转换为可编辑文件
- c# - 为什么我没有得到正则表达式组值