我是 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
关于python - 如何使用线性关系计算python中的新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20063652/