【发布时间】:2019-12-16 18:53:27
【问题描述】:
我正在学习 Python 的一些基础知识,并且正在尝试模拟我在 R 中编写的简单代码,但是当我将函数应用于新变量时出现了问题。
这是我在 R 中写的:
df1 <- df %>%
select(var1,,var2,var4,var5,var6) %>%
gather(var4,var5,var6,key = "key_name",value = "value_name") %>%
mutate(value_name=value_name*1000)
这是我用 Python 写的:
df1= (df
.filter(['var1','var2','var3','var4','var5','var6'])
.melt(id_vars=['var1','var2'])
.assign(value = df['value']*1000)
)
这给了我一个错误,我知道这是因为当我尝试在.melt 之后使用.assign 时,变量'value' 在数据框df 上不存在。
我知道我可以这样做:
df1= (df
.filter(['var1','var2','var3','var4','var5','var6'])
.melt(id_vars=['var1','var2'])
)
df1=df1.assign(value = df['value']*1000)
但我希望一个接一个地拥有所有功能,而无需多次定义我的数据框df1。如果不可能做这样的事情,我想知道为什么。
高级问候。
【问题讨论】:
-
请提供您的原始 df 样本或minimal reproducible example(help/mcve)。
-
谢谢。我将在以后的问题中包含它。
标签: python r pandas dataframe tidyverse