gpt4 book ai didi

python - 从其他列中的值获取列索引 nr

转载 作者:行者123 更新时间:2023-12-01 23:51:32 25 4
gpt4 key购买 nike

我对 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'] ))

df['i'] 中的值将始终是整数值,因此我希望根据 df['i'] 中的值使用列的位置.

最佳答案

IIUC,DataFrame.rename然后我们可以使用 DataFrame.lookup 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)))))

关于python - 从其他列中的值获取列索引 nr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60720542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com