Pandas 遍历 Dataframe 的三种方式

初始Dataframe:

Position

  Flag  Open Close  Position
0   No  None  None       100
1   No  None  None         0
2   No  None  None       100
3   No  None  None         0
4   No  None  None         0
5   No  None  None         0
6   No  None  None         0

筛选:

Temp=Position[(Position.Flag=='No')&(Position.Position>0)]

Temp

  Flag  Open Close  Position
0   No  None  None       100
2   No  None  None       100

1.按行遍历迭代成元组

for row in Temp.itertuples():
    print(row)

[Out]:  
Pandas(Index=0, Flag='No', Open=None, Close=None, Position=100)
Pandas(Index=2, Flag='No', Open=None, Close=None, Position=100)

访问:

getattr(row,'Index')
Out[31]: 2

getattr(row,'Position')
Out[27]: 100

2.按行遍历迭代成(index,Series)对

for index,row in Temp.iterrows():
    print(index)
    print(row)
    
0
Flag          No
Open        None
Close       None
Position     100
Name: 0, dtype: object
2
Flag          No
Open        None
Close       None
Position     100
Name: 2, dtype: object

Series 里不包含index

row
Out[42]: 
Flag          No
Open        None
Close       None
Position     100
Name: 2, dtype: object

Series的类型为pandas.core.series.Series,可直接访问:

for index,row in Temp.iterrows():
    print(index,row.Position)

[Out]:    
0 100
2 100

3.按列遍历迭代成(列名,Series)对:

for column, series in Temp.iteritems():
    print(column)
    print(series)

[Out]:    
Flag
0    No
2    No
Name: Flag, dtype: object
Open
0    None
2    None
Name: Open, dtype: object
Close
0    None
2    None
Name: Close, dtype: object
Position
0    100
2    100
Name: Position, dtype: int64

通过,series的Index访问

for index in series.index:
    print(series[index])

[Out]:    
100
100

series.index
Out[63]: Int64Index([0, 2], dtype='int64')

referrence:https://blog.csdn.net/sinat_29675423/article/details/87972498


版权声明:本文为weixin_39405468原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。