簡體   English   中英

在每7行中,獲得第n行pandas

[英]Out of every 7 rows, get the nth row pandas

我有一個像這樣的df大約1000行:

      0        1
0  1.345    2.456
1  2.123    3.564
2  0.023    3.548
3  3.457    2.456
4  1.754    3.564
5  0.905    3.548
6  3.674    7.543
7  9.443    6.4433...

它的組織方式是每7行構成一組“數據”(數據不能在這里排序)。 在7行的每個“組”中,我想獲得第一行,所以我的新數據框看起來像:

      0        1
0  1.345    2.456
7  9.443    6.4433

我可以通過創建一個重復1-7並僅按該列過濾的新列來解決它...

      0        1    groupby_col
0  1.345    2.456        1
1  2.123    3.564        2
2  0.023    3.548        3
3  3.457    2.456        4
4  1.754    3.564        5
5  0.905    3.548        6
6  3.674    7.543        7
7  9.443    6.4433       1...

然后...

df[df['groupby_col'] == 1]

我有沒有辦法在熊貓中做到這一點,而無需創建額外的列然后過濾?

選項1:

In [54]: df.iloc[::7]
Out[54]:
       0       1
0  1.345  2.4560
7  9.443  6.4433

選項2:

In [53]: df.iloc[np.arange(len(df))%7==0]
Out[53]:
       0       1
0  1.345  2.4560
7  9.443  6.4433
df.loc[df.index%7==0]
Out[124]: 
       0       1
0  1.345  2.4560
7  9.443  6.4433

要么

df.groupby(df.index//7,as_index=False).first()
Out[128]: 
       0       1
0  1.345  2.4560
1  9.443  6.4433

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM