gpt4 book ai didi

python - 根据行间变化的计算创建新列?

转载 作者:行者123 更新时间:2023-12-04 15:27:53 25 4
gpt4 key购买 nike

我想计算给定日期的变量总和。每一天都包含不同的计算,但所有天都使用一致的变量。

有一个 df 指定了我的变量,还有一个 df 指定了计算将如何根据一天而变化。

如何创建包含这些不同方程式答案的新列?

import pandas as pd
import numpy as np

conversion = [["a",5],["b",1],["c",10]]
conversion_table = pd.DataFrame(conversion,columns=['Variable','Cost'])

data1 = [[1,"3a+b"],[2,"c"],[3,"2c"]]
to_solve = pd.DataFrame(data1,columns=['Day','Q1'])

desired = [[1,16],[2,10],[3,20]]
desired_table=pd.DataFrame(desired,columns=['Day','Q1 solved'])

我已经根据行分离了我的变量和方程式。我可以遍历这些方程式以找到非数字并重新分配它们吗?

#separate out equations and values 

for var in conversion_table["Variable"]:
cost=(conversion_table.loc[conversion_table['Variable'] == var, 'Cost']).mean()

for row in to_solve["Q1"]:
equation=row

最佳答案

一个简单的建议,也许你需要重写你的一部分代码。不确定您是否想要这样的东西:

a = 5
b = 1
c = 10

# Rewrite the equation that is readable by Python
# e.g. replace 3a+b by 3*a+b
data1 = [[1,"3*a+b"],
[2,"c"],
[3,"2*c"]]

desired_table = pd.DataFrame(data1,
columns=['Day','Q1'])
desired_table['Q1 solved'] = desired_table['Q1'].apply(lambda x: eval(x))
desired_table

输出:

   Day     Q1  Q1 solved
0 1 3*a+b 16
1 2 c 10
2 3 2*c 20

关于python - 根据行间变化的计算创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61882878/

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