基本上,我有一个查询返回一个数据帧并逐行返回我希望使用行的元素作为下一个查询的参数生成新的查询 - 该示例遍历简化版本并理解应该足够了!
>>> 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)
您可以在迭代数据帧时展开元组,然后只打印您想要的列:
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)
这也将输出与第一个代码片段相同的结果
| 归档时间: |
|
| 查看次数: |
4455 次 |
| 最近记录: |