我正试着翻阅一张数据。特别是通过date列,因此对于每个日期,我都得到该日期的x、y和z值,并将其填充到我定义的函数中。不知何故,我不知道该怎么称呼它。我的代码如下所示:
import pandas as pd
def calc_funct(x, y, z):
func = x*y*z
return func
if __name__ == '__main__':
df = pd.read_csv('C:/Data.csv')
for column in df:
results = calc_funct(df['x'], df['y'], df['z'])
print(result)输入如下所示:
date x y z
0 2017-11-11 18 17 7
1 2017-11-11 16 19 3
2 2017-11-11 13 14 2
3 2017-11-11 12 13 1
4 2017-11-11 11 12 9
5 2017-11-11 10 11 10
6 2017-11-11 21 10 11
7 2017-11-12 13 19 12
8 2017-11-13 18 17 12
9 2017-11-14 9 10 20
10 2017-11-15 2 20 13
11 2017-11-18 13 13 9
12 2017-11-19 18 14 16
13 2017-11-20 14 11 19
14 2017-11-21 18 15 19对于2017至11-11日,我将计算数值(例如,在该日期加/减所有数值),并将其存储在一个清单中。然后遍历下一个日期2017-11-12等等.
发布于 2018-01-30 11:08:44
如果您想要所有列+函数的结果的新列,您可以这样做:
df['result'] = calc_funct(df['x'], df['y'], df['z'])或者只有date和result与另一行代码:
df = df[['date','result']]编辑
result = []
for index, row in df.iterrows():
result.append(row['date'])
result.append(calc_funct(row['x'], row['y'], row['z']))
print result发布于 2018-01-30 11:03:55
在熊猫中,你可以使用apply方法。
df.apply(lambda v : calc_funct(v["x"], v["y"], v["z"]), axis=1)注axis=1用于对行进行迭代,axis=0用于对列进行迭代。
https://stackoverflow.com/questions/48519553
复制相似问题