python - 如何针对由 melt 函数创建的值使用 assign 函数?
问题描述
我正在学习 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)
)
这给了我一个错误,我知道这是因为当我尝试使用.assign
after时,数据框上不存在.melt
该变量。'value'
df
我知道我可以做类似的事情:
df1= (df
.filter(['var1','var2','var3','var4','var5','var6'])
.melt(id_vars=['var1','var2'])
)
df1=df1.assign(value = df['value']*1000)
但我希望一个接一个地拥有所有功能,而无需多次定义我的数据框df1
。如果不可能做这样的事情,我想知道为什么。
高级问候。
解决方案
你只需要改变:
assign(value = df['value']*1000)
至
assign(value=lambda df: df['value']*1000)
推荐阅读
- javascript - 节点js + express + ejs。无法读取未定义的属性“option0”
- r - 无法通过匹配另一列中给出的列名来重新排序数据框列
- javascript - 类型错误:message.createReactionCollector 不是 Discord.js 函数
- r - 基于R中的两个变量的子设置面板数据
- tensorflow-serving - vgg_19 slim 模型是frozen.pb 图?
- matlab - “double”类型的输入参数的未定义函数“normalize”
- python - 正则表达式捕获 1985 年 6 月 15 日
- r - 如何在 R 中的异步期货中更改工作目录
- python - 创建具有重复元素的所有排列,而不重复排列本身
- powershell - Azure Web App FTP 550 访问被拒绝