Pandas Dataframe 一次迭代两行

Foz*_*oro 3 python pandas

我正在使用以下内容Dataframe

      Price     Price2    Count  perc_change
0  0.000868    33782.17     4     1.000000
1  0.000872    33224.89     3     0.460829
2  0.000875    84110.85     7     0.344037
3  0.000878    67686.15     4     0.342857
4  0.000880    121400.22    4     0.227790
Run Code Online (Sandbox Code Playgroud)

以下代码:

for row in df.iterrows():
    print(row)
Run Code Online (Sandbox Code Playgroud)

一次返回一行 dfDataframe我想知道是否可以一次遍历两行?

And*_* L. 8

iterrowsgenerator object,所以你只需要调用next两次或者使用zip

t = df.iterrows()
for (i, row1), (j, row2) in zip(t, t):
    print(row1, row2)
Run Code Online (Sandbox Code Playgroud)


jez*_*ael 5

是的,如果可能,您可以使用DataFrame.groupby整数除法返回 2 行DataFrame

#default RangeIndex
for i, g in df.groupby(df.index // 2):
    print (g)
Run Code Online (Sandbox Code Playgroud)

通用解决方案numpy.arange

for i, g in df.groupby(np.arange(len(df)) // 2):
    print (g)
      Price    Price2  Count  perc_change
0  0.000868  33782.17      4     1.000000
1  0.000872  33224.89      3     0.460829
      Price    Price2  Count  perc_change
2  0.000875  84110.85      7     0.344037
3  0.000878  67686.15      4     0.342857
     Price     Price2  Count  perc_change
4  0.00088  121400.22      4      0.22779
Run Code Online (Sandbox Code Playgroud)