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

标签 python numpy pandas

我是 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/

相关文章:

python - np.ascontiguousarray 与 np.asarray 与 Cython

python - Panda 的 DataFrame - 重命名多个同名列

python - OpenCV本地像素平均值生成扩展输出

python - 如何将 pandas DataFrame 中的列提升为连续幂

python - numpy Mean函数的参数 'a'如何工作?

python - 想要使用 pandas 按大陆对 Covid 19 数据集进行分组,但 Plotly 中假设的可视化是错误的

python - 将 Pandas 数据框转换为所需的 python 字典

Python:寻找最长路径

python - 使用 Sympy 查找系数不包括平方根 (sqrt) 作为值

python - 从 NumPy ndarray 中选择行