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

标签 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!?

最佳答案

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

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!

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

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

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

关于python - 需要一些基本的 Pandas 帮助——尝试逐行打印数据框并对该行的特定列中的元素执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529402/

相关文章:

python - 基于两列的 Pandas 合并删除了大量初始数据集

python - jython 使用 urllib2 发出请求 throw General SSLEngine

python - 使用 pandas GroupBy 聚合时设置 MultiIndex

python - Index Pandas Dataframe 混合行号和列名

python - Dask:在列上删除 NA?

python - 如何使用 opencv 对视频进行 Canny 边缘检测以减少闪烁并显示更粗的线条?

用于字符串替换的python正则表达式

python - 如何使用正则表达式将文本中的值对提取到列表中?

python - 遍历一列 Pandas 时获取索引

python (gspread) - 整个数据表放置在我的 Google Sheets 的一个单元格中,而不是单独的单元格中