gpt4 book ai didi

python - 引用正在定义的数据框的列

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

我正在尝试在 pandas 中创建一个数据框并直接使用生成的列之一将新列分配给同一个 df。
作为一个简化的示例,我尝试使用分配来乘以 df 的列:

import pandas as pd
df = pd.DataFrame([['A', 1], ['B', 2], ['C', 3]] , columns = ['col1', 'col2'])\
.assign(col3 = 2 * col2)

但随后我收到错误 NameError: name 'col2' is not Defined

使用 R/dplyr,我可以在管道中使用

df <- data.frame(col1 = LETTERS[1:3], col2 = 1:3) %>% mutate(col3 = 2 * col2)

此外,一般意义上,R/dplyr 中的管道表示法允许使用“.”。引用管道转发的数据。

有没有办法引用刚刚创建的列(或进入分配语句的数据),从而在 Pandas 中执行相同的操作?

最佳答案

使用lambda函数,更多信息见Assigning New Columns in Method Chains :

df = (pd.DataFrame([['A', 1], ['B', 2], ['C', 3]] , columns = ['col1', 'col2'])
.assign(col3 = lambda x: 2 * x.col2))
print (df)
col1 col2 col3
0 A 1 2
1 B 2 4
2 C 3 6

关于python - 引用正在定义的数据框的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56221185/

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