gpt4 book ai didi

python-3.x - 如何获取运算符类型并将公式应用于 Pandas 数据框

转载 作者:行者123 更新时间:2023-12-04 08:13:16 25 4
gpt4 key购买 nike

我有一个这样的 python 字符串:str1='PRODUCT1_PRD/2+PRODUCT2_NON-PROD-PRODUCT3_NON-PRD/2'在这里,我想以动态方式获取运算符,并基于我想执行某些操作的运算符。我有一个像这样的 Pandas 数据帧 df:

PRODUCT   PRD  NON-PORD
PRODUCT1 3 5
PRODUCT2 4 6
PRODUCT3 5 8
输出我想要一个变量 var1=(3/2)+6-(8/2)=3.5应用上述公式后。我怎样才能做到这种最有效的方式?
想注意一件事:我有多个公式,就像我提到的那样,都在一个字符串列表中。所以我必须一一应用所有这些公式。

最佳答案

先创建 MultiIndex Series来自 DataFrame.set_index DataFrame.stack 并通过 _ 连接索引值在 map :

s = df.set_index('PRODUCT').stack()
s.index = s.index.map('_'.join)
print (s)
PRODUCT1_PRD 3
PRODUCT1_NON-PROD 5
PRODUCT2_PRD 4
PRODUCT2_NON-PROD 6
PRODUCT3_PRD 5
PRODUCT3_NON-PROD 8
dtype: int64
然后用 Series 替换字符串中的值并调用 pandas.eval :
str1='PRODUCT1_PRD/2+PRODUCT2_NON-PROD-PRODUCT3_NON-PROD/2'

for k, v in s.items():
str1 = str1.replace(k, str(v))
print (str1)
3/2+6-8/2

print (pd.eval(str1))
3.5

关于python-3.x - 如何获取运算符类型并将公式应用于 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65840423/

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