我正在尝试浏览我的DF:
DF
for row in range(len(DF)): for col in range(len(DF.columns)): print(DF[row][col])
但这样做会抛出:
KeyError: 0
我在想,如何仅使用列号和行号来浏览整个 Dataframe (包括列名和不包括索引)。
ovfsdjhp1#
如果需要按索引选择值,请使用DataFrame.iat/DataFrame.iloc:
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:
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])
但如果可能的话,使用一些矢量化的解决方案,最好的方法是避免循环。
zwghvu4y2#
一个不错的选择可能是stack并使用单个循环:
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
2条答案
按热度按时间ovfsdjhp1#
如果需要按索引选择值,请使用
DataFrame.iat
/DataFrame.iloc
:更好地按索引值、列进行选择,如果不复制
index/columns
值,则输出相同,使用DataFrame.at
/DataFrame.loc
:但如果可能的话,使用一些矢量化的解决方案,最好的方法是避免循环。
zwghvu4y2#
一个不错的选择可能是
stack
并使用单个循环:示例:
使用的输入: