通过元素循环数据帧元素

时间:2015-07-08 21:18:20

标签: python pandas

如果我有数据帧df(由整数索引)

        BBG.KABN.S  BBG.TKA.S   BBG.CON.S   BBG.ISAT.S
index               
0       -0.004881   0.008011    0.007047    -0.000307
1       -0.004881   0.008011    0.007047    -0.000307
2       -0.005821   -0.016792   -0.016111   0.001028
3       0.000588    0.019169    -0.000307   -0.001832
4       0.007468    -0.011277   -0.003273   0.004355

我希望单独迭代每个元素(按行和列)我知道我需要使用.iloc(行,列)但有人可以告诉我是否需要创建2个for循环(一个用于行和一个用于专栏)我将如何做到这一点?

我猜它会是这样的:

for col in rollReturnRandomDf.keys():    
    for row in rollReturnRandomDf.iterrows():

       item = df.iloc(col,row)

但我不确定确切的语法。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

也许尝试使用df.values.ravel()

import pandas as pd
import numpy as np

# data
# =================
df = pd.DataFrame(np.arange(25).reshape(5,5), columns='A B C D E'.split())

Out[72]: 
    A   B   C   D   E
0   0   1   2   3   4
1   5   6   7   8   9
2  10  11  12  13  14
3  15  16  17  18  19
4  20  21  22  23  24


# np.ravel
# =================
df.values.ravel()

Out[74]: 
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
       21, 22, 23, 24])

for item in df.values.ravel():
    # do something with item