gpt4 book ai didi

python - Pandas 根据字符串列值有条件地设置值

转载 作者:行者123 更新时间:2023-12-01 00:01:18 24 4
gpt4 key购买 nike

我有一个数据框,其中包含由各种输出设置的位置和值。我还有一列告诉我要使用哪一列。像这样的东西:

location x y z best
detroit 1 2 3 x
chicago 3 4 5 y
racine 2 4 3 z

我想根据“best”的值设置新列的值

类似的东西

location x y z best val
detroit 1 2 3 x 1
chicago 3 4 5 y 4
racine 2 4 3 z 3

我该怎么做?不允许嵌套函数、自定义函数或 for 循环。

最佳答案

使用DataFrame.lookup :

df['val'] = df[['x','y','z']].lookup(df.index, df['best']) 

输出

print(df)
location x y z best val
0 detroit 1 2 3 x 1
1 chicago 3 4 5 y 4
2 racine 2 4 3 z 3

替代方案:

df['val']=df[['x','y','z']].stack().loc[zip(df.index, df['best'])].values

关于python - Pandas 根据字符串列值有条件地设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60347026/

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