如何使用行号e和列号浏览Pandas Dataframe

oymdgrw7  于 2022-09-21  发布在  其他
关注(0)|答案(2)|浏览(116)

我正在尝试浏览我的DF

for row in range(len(DF)):
    for col in range(len(DF.columns)):
        print(DF[row][col])

但这样做会抛出:

KeyError: 0

我在想,如何仅使用列号和行号来浏览整个 Dataframe (包括列名和不包括索引)。

ovfsdjhp

ovfsdjhp1#

如果需要按索引选择值,请使用DataFrame.iat/DataFrame.iloc

for row in range(len(DF)):
    for col in range(len(DF.columns)):
        print(DF.iat[row, col])
        #print(DF.iloc[row, col])

更好地按索引值、列进行选择,如果不复制index/columns值,则输出相同,使用DataFrame.at/DataFrame.loc

for row in DF.index:
    for col in DF.columns:
        print(DF.at[row, col])
        #print(DF.loc[row, col])

但如果可能的话,使用一些矢量化的解决方案,最好的方法是避免循环。

zwghvu4y

zwghvu4y2#

一个不错的选择可能是stack并使用单个循环:

for (row, col), value in df.stack().items():
    print(row, col, value)

示例:

i A 0
i B 1
i C 2
j A 3
j B 4
j C 5
k A 6
k B 7
k C 8

使用的输入:

A  B  C
i  0  1  2
j  3  4  5
k  6  7  8

相关问题