需要一些基本的Pandas帮助 - 尝试逐行打印数据帧并对该行的特定列中的元素执行操作

Tyl*_*ood 5 python pandas

基本上,我有一个查询返回一个数据帧并逐行返回我希望使用行的元素作为下一个查询的参数生成新的查询 - 该示例遍历简化版本并理解应该足够了!

>>> 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!?
Run Code Online (Sandbox Code Playgroud)

EdC*_*ica 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!
Run Code Online (Sandbox Code Playgroud)

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

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

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