首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环一列并填充函数Pandas Dataframe Python中的行

循环一列并填充函数Pandas Dataframe Python中的行
EN

Stack Overflow用户
提问于 2018-01-30 10:48:18
回答 2查看 3K关注 0票数 1

我正试着翻阅一张数据。特别是通过date列,因此对于每个日期,我都得到该日期的x、y和z值,并将其填充到我定义的函数中。不知何故,我不知道该怎么称呼它。我的代码如下所示:

代码语言:javascript
复制
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)

输入如下所示:

代码语言:javascript
复制
           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等等.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-30 11:08:44

如果您想要所有列+函数的结果的新列,您可以这样做:

代码语言:javascript
复制
df['result'] = calc_funct(df['x'], df['y'], df['z'])

或者只有dateresult与另一行代码:

代码语言:javascript
复制
df = df[['date','result']]

编辑

代码语言:javascript
复制
result = []
for index, row in df.iterrows():
    result.append(row['date'])
    result.append(calc_funct(row['x'], row['y'], row['z']))
print result
票数 2
EN

Stack Overflow用户

发布于 2018-01-30 11:03:55

在熊猫中,你可以使用apply方法。

代码语言:javascript
复制
df.apply(lambda v : calc_funct(v["x"], v["y"], v["z"]), axis=1)

axis=1用于对行进行迭代,axis=0用于对列进行迭代。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48519553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档