前提
python初心者ですがよろしくお願いいたします。
pythonでcsvファイルから、複数の指定の範囲から数値を抽出しようとしています。
for文での条件付けがうまく動作しませんでした。
実現したいこと
仮にa=[1 2 3 4 5]
b=[10 11 12 13 14] の2つの配列と
csvファイル
time value
1 100
2 200
3 300
: :
: :
13 1300
14 1400
のようなcsvファイルがあるとします。
実現したいことは、timeが110,211...5~14のそれぞれの範囲のvalueを抽出することです。
例[100 200...1000] [200 300...1100]...[500 600...1400]
試したことは以下のコードで(実際の数値より簡略化していますが)
df=pd.read_csv('abc.csv',names=['time','value'])
a=[1 2 3 4 5]
b=[10 11 12 13 14]
n1 = len(a)
print(df)
for i in range(0, n1-1):
df=df[(df['time']>a[i]) & (df['time']<b[i])]
print(df)
出力結果は以下のようになりました
[72000 rows x 2 columns]
time value
482 24.10 -34.385826
483 24.15 -33.221472
484 24.20 -31.423234
485 24.25 -29.060187
486 24.30 -26.665936
... ... ...
1276 63.80 -9.159655
1277 63.85 -9.759223
1278 63.90 -9.759223
1279 63.95 -10.383308
1280 64.00 -10.682700
[799 rows x 2 columns]
time value
634 31.70 -22.176455
635 31.75 -19.466094
636 31.80 -16.746808
637 31.85 -14.018522
638 31.90 -10.682700
... ... ...
1276 63.80 -9.159655
1277 63.85 -9.759223
1278 63.90 -9.759223
1279 63.95 -10.383308
1280 64.00 -10.682700
[647 rows x 2 columns]
Empty DataFrame
Columns: [time, value]
Index: []
Empty DataFrame
Columns: [time, value]
Index: []
Empty DataFrame
Columns: [time, value]
Index: []
Empty DataFrame
Columns: [time, value]
最初の2つの範囲は、間違った範囲で出力され、残りは空っぽで出力されました。
for文を初めて触ったので、勉強不足な部分が多いと思いますがどうかご教授お願いいたします。
追記 a,bの中身は固定ではないのでa,bの中身は使わないコードでお願いいたします。