[英]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.