gpt4 book ai didi

Python Pandas 基于另一列值创建新列

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

根据数据框列 val_1 的值,查看其他列 col_0-10 标签前缀,然后创建另一列 mycol。

数据框看起来像:

id  col0    col1    col2    col3    col4    col5 col6   col7    col8    col9    col10 val_1
1 0 5 -5 5 -5 0 0 1 4 3 -3 1
2 0 0 0 0 0 0 0 4 -4 0 0 7
3 0 0 1 2 3 0 0 0 5 6 0 9

应用逻辑后所需的数据框:

id  col0    col1    col2    col3    col4    col5 col6   col7    col8    col9    col10 val_1 mycol
1 0 5 -5 5 -5 0 0 1 4 3 -3 1 5
2 0 0 0 0 0 0 0 4 -4 0 0 7 4
3 0 0 1 2 3 0 0 0 5 6 0 9 6

我试过了,但这不起作用:df['mycol'] = df['col' + df['val_1'].astype(str)]

DDL 生成 DataFrame:

df = pd.DataFrame({'id': [1, 2, 3],
'col0': [0, 0, 0],
'col1': [5, 0, 0],
'col2': [-5, 0, 1],
'col3': [5, 0, 2],
'col4': [-5, 0, 3],
'col5' : [0, 0, 0],
'col6': [0, 0, 0],
'col7': [1, 4, 0],
'col8': [4, -4, 5],
'col9': [3, 0, 6],
'col10': [-3, 0, 0],
'val_1' : [1, 7, 9]})

谢谢!

最佳答案

使用 DataFrame.lookupcol 前缀添加到 val_1 列的值:

df['mycol'] = df.lookup(df.index, 'col' + df['val_1'].astype(str))
print (df)
id col0 col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 \
0 1 0 5 -5 5 -5 0 0 1 4 3 -3
1 2 0 0 0 0 0 0 0 4 -4 0 0
2 3 0 0 1 2 3 0 0 0 5 6 0

val_1 mycol
0 1 5
1 7 4
2 9 6

关于Python Pandas 基于另一列值创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62791298/

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