[英]python pandas how to get data every n and every nth rows?
這個問題與每n行或每n行的pandas不同,請不要刪除它。
以下是我的表的一些行:
open high low close volume datetime
277.14 277.51 276.71 276.8799 968908 2020-04-13 08:31:00.000
245.3 246.06 245.2 246.01 1094537 2020-04-13 08:32:00.000
285.12 285.27 284.81 285.22 534427 2020-04-13 08:33:00.000
246.08 246.08 245.27 245.46 1333257 2020-04-13 08:34:00.000
291.71 291.73 291.08 291.28 1439183 2020-04-13 08:35:00.000
245.89 246.63 245.64 246.25 960411 2020-04-13 08:36:00.000
285.18 285.4 285 285.36 188531 2020-04-13 08:30:37.000
285.79 285.79 285.65 285.68 6251 2020-04-13 08:38:00.000
246.25 246.56 246.12 246.515 956339 2020-04-13 08:39:00.000
我想每3行,並〔實施例,
第一次得到:1st,2end,3rd 行,
2end 時間獲取:2end,3rd,4th 行,
第三次獲得:第 3、4、5 行,
第 4 次獲得:第 4、5、6 行。
我可以使用 Pandas 或 python 來獲得這個的任何好方法。謝謝。
.shift()
做你想做的嗎?
import pandas as pd
df = pd.DataFrame({'w': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]})
df['x'] = df['w'].shift( 0)
df['y'] = df['w'].shift(-1)
df['z'] = df['w'].shift(-2)
print(df)
w x y z
0 10 10 20.0 30.0
1 20 20 30.0 40.0
2 30 30 40.0 50.0
3 40 40 50.0 60.0
4 50 50 60.0 70.0
5 60 60 70.0 80.0
6 70 70 80.0 90.0
7 80 80 90.0 100.0
8 90 90 100.0 NaN
9 100 100 NaN NaN
使用帶有iloc
生成器來選擇所需的行:
def rows_generator(df):
i = 0
while (i+3) <= df.shape[0]:
yield df.iloc[i:(i+3):1, :]
i += 1
i = 1
for df in rows_generator(df):
print(f'Time #{i}')
print(df)
i += 1
示例輸出:
Time #1
Group Cat Value
0 Group1 Cat1 1230
1 Group2 Cat2 4019
2 Group3 Cat3 9491
Time #2
Group Cat Value
1 Group2 Cat2 4019
2 Group3 Cat3 9491
3 Group4 Cat4 9588
Time #3
Group Cat Value
2 Group3 Cat3 9491
3 Group4 Cat4 9588
4 Group5 Cat5 6402
Time #4
Group Cat Value
3 Group4 Cat4 9588
4 Group5 Cat5 6402
5 Group6 Cat 1923
Time #5
Group Cat Value
4 Group5 Cat5 6402
5 Group6 Cat 1923
6 Group7 Cat7 492
Time #6
Group Cat Value
5 Group6 Cat 1923
6 Group7 Cat7 492
7 Group8 Cat8 8589
Time #7
Group Cat Value
6 Group7 Cat7 492
7 Group8 Cat8 8589
8 Group9 Cat9 8582
以下應該工作:
for i in range(len(df)-2):
result=df.iloc[i:i+3, :]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.