从另一个数据帧创建一个数据帧以及 Pandas Dataframe 中的公式列表

问题描述 投票:0回答:1

我有以下列表和数据框:

import pandas as pd

df = pd.DataFrame({
    'name': ['alice','bob','charlie'],
    'a0': [25,26,27],
    'b0': [10,11,12],
    'c0': [3,4,5],
})

formul=['a0+b0','a0-c0','b0*c0','a0+c0']

由此我想构建一个新的数据框,其中第一列是原始的,其他列根据列表中的操作进行修改:

name    a0+b0 a0-c0 b0*c0 a0+c0
alice      35    22    30    28
bob        37    22    44    30
charlie    39    22    60    32

我已经在 R 中开发了公式,但现在我想将其翻译为 python:

Formula<-strsplit(formul, split=",")[[1]]
df<-as.data.frame(cbind(as.numeric(df$Name),sapply(Formula, function(x) with(df, eval(parse(text = x))))))

问候

python pandas
1个回答
0
投票

您可以组合

assign
eval
:

out = df.assign(**{s: lambda x: x.eval(s) for s in formul})

输出:

      name  a0  b0  c0  a0+b0  a0-c0  b0*c0  a0+c0
0    alice  25  10   3     28     28     28     28
1      bob  26  11   4     30     30     30     30
2  charlie  27  12   5     32     32     32     32
© www.soinside.com 2019 - 2024. All rights reserved.