Skip to main content
 首页 » 编程设计

python之如何使用线性关系计算python中的新字段

2025年05月04日13freeliver54

我是 python 的新手,使用 python 2.7.5,在我使用以下代码在 python 中读取 csv 文件后:

df = csv.DictReader(open("C:\\Users\\user\\Documents\\file.csv")). 

我想计算一个新字段(或列),其值可以使用 csv 文件的现有标题导出。新字段(称为 n_val)的值可以导出为

:n_val = lf[0]*co[0] + lf[1]*co[1] +5

“lf”和“co”是我的列表。 “lf”列表包含字段名称作为列表值,例如 ['x','y'],而“co”包含列表中 x 和 y 的系数值 [2.08,9.3]。

因为 csv 文件包含 x 和 y 的值,格式如下(显示为输入)。我想计算 new_val 并将其打印在屏幕上(作为输出)

Input: 
x  y 
02 04 
03 05 
61 17 
12 56 
09 23 
 
Output: 
x  y  new_val 
02 04 46.36 
03 05 57.74 
61 17 289.98 
12 56 550.76 
09 23 237.62 

非常感谢这方面的任何帮助,并提前致谢。

请您参考如下方法:

首先,要使用 pandas,您可以使用 read_csv 将数据加载到 pandas DataFrame 中。方法(参见一些示例 here ):

>>> import pandas as pd 
>>> df = pd.read_csv(r'C:\Users\user\Documents\file.csv') 

然后你可以使用 pandas.DataFrame.apply函数,axis=1(表示将函数应用于每一行):

>>> df['new_val'] = df.apply(lambda row: sum(row[lf[i]]*co[i] for i in range(len(lf)))+5, axis=1) 
>>> df 
    x   y  new_val 
0   2   4    46.36 
1   3   5    57.74 
2  61  17   289.98 
3  12  56   550.76 
4   9  23   237.62