首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逐行打印数据帧中的每一行日期或数据,并将其传递给函数

逐行打印数据帧中的每一行日期或数据,并将其传递给函数
EN

Stack Overflow用户
提问于 2016-06-04 10:12:24
回答 1查看 153关注 0票数 1

我有一个数据帧,它包含一些开始和结束日期,我想逐行传递给函数,即成对的开始和结束日期。

代码语言:javascript
复制
Data
start       | end 
2015-06-01    2016-06-28
.
.
.

我希望能够将数据帧的整行或某些列从数据帧传递给函数,并且该函数分别对所有行进行重复。

我只能让pandas中的.apply和.applymap处理数据帧中的单个列,而不能处理数据帧中的多个或所有列(或者只是传递给函数的列数)。

EN

回答 1

Stack Overflow用户

发布于 2016-06-04 11:04:42

如果只是遍历这些行,则应该使用iterrows

代码语言:javascript
复制
In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])

In [12]: df
Out[12]:
   A  B
0  1  2
1  3  4

In [13]: for i, row in df.iterrows():
             print(row)

A    1
B    2
Name: 0, dtype: int64
A    3
B    4
Name: 1, dtype: int64

可以使用[[...]]将其限制为某些列

代码语言:javascript
复制
In [14]: df[["A"]]
Out[14]:
   A
0  1
1  3

可以通过传递axis=1对行而不是列使用apply

代码语言:javascript
复制
In [21]: df.apply(lambda row: row.sum(), axis=1)
Out[21]:
0    3
1    7
dtype: int64

注意:在这种情况下,您可以使用原生pandas sum函数,但在编写您自己的函数时,它们可以接受一行(作为Series):

代码语言:javascript
复制
In [31]: df.sum(axis=1)   # much faster
Out[31]:
0    3
1    7
dtype: int64

In [32]: df.apply(print, axis=1)  # python 3 (print is a function)
A    1
B    2
Name: 0, dtype: int64
A    3
B    4
Name: 1, dtype: int64
Out[32]:
0    None
1    None
dtype: object
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37625683

复制
相关文章

相似问题

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