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

2024-03-29 10:30:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,使用python 2.7.5,之前我使用以下代码阅读了python中的csv文件:

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

我想计算一个新的字段(或列),可以使用csv的现有头来派生该字段的值文件。文件新字段的值(称为n值)可以派生为

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

其中“lf”和“co”是我的名单lf“list”包含字段名作为列表值,例如['x','y'],“co”包含列表中x和y的系数值作为[2.08,9.3]。你知道吗

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

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

在这方面的任何帮助都是非常感谢的,并提前表示感谢。你知道吗


Tags: 文件csv代码df列表valopenusers
1条回答
网友
1楼 · 发布于 2024-03-29 10:30:49

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

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

在这之后,可以使用pandas.DataFrame.apply函数,轴=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

相关问题 更多 >