5

基本上,我有一个查询返回一个数据帧和逐行我想使用该行的元素作为下一个查询的参数来生成新的查询——该示例介绍了一个简化版本,并且理解应该足够了!

>>> import pandas as pd
>>> df2 = pd.DataFrame({'a' : ['colorado', 'california', 'texas', 'oregon'], 'b' : ['go buffs', 'go bears', 'go sooners', 'go ducks'], 'c' : [14,14,15,13]})
>>> df2
            a           b   c
0    colorado    go buffs  14
1  california    go bears  14
2       texas  go sooners  15
3      oregon    go ducks  13

#Print element by element in column
>>> for x in df2['a']:
...     print x
...
colorado
california
texas
oregon

#What I want is to print full ROWS

>>> df3 = df2.loc[:, ['a','b']]
>>> df3
            a           b
0    colorado    go buffs
1  california    go bears
2       texas  go sooners
3      oregon    go ducks

#I want to get something like
#for x, y in df3['a','b']:
#       print 'in %s say %s!'%(x,y)

#and get:
#in colorado say go buffs!
#in california....etc

#How do I do that!?
4

1 回答 1

2

您可以在遍历数据框时展开元组,然后只打印所需的列:

for row in df2.itertuples():
    index, a, b, c  = row
    print 'in %s say %s!'%(a,b)

in colorado say go buffs!
in california say go bears!
in texas say go sooners!
in oregon say go ducks!

或者,您可以使用iterrowswhich 作为@DSM 指出的返回具有嵌套值的索引(实际上是一个系列):

for row in df2.iterrows():
    index, data = row
    print 'in %s say %s!' % (data['a'], data['b'])

这也将输出与第一个代码片段相同的内容

于 2013-10-22T22:28:52.073 回答