2017-11-03 6 views
0

私は、列 "値"と列 "タイムスタンプ"を持つパンダのデータフレームを持っています。今私は、タイムスタンプのしきい値に応じて行をフィルタリングしたいと思います。私は、次のことを行っている:列のしきい値に従ってパンダのデータフレームの行を選択

idx = df.index[df['timestamp'] >= start and df['timestamp'] <= end] 
df = df.loc[idx] 

dfは、データフレームであるとstartendは二つの整数です。

どういうわけか、これは機能しません。

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

EDIT:さらに問題があります。 startは1つの値(1つの行、1つの列)を持つデータフレームです。 Endは、複数の行と1つの列のみを持つデータフレームです(ただし、最後の行にのみ関心があります)。その結果

ValueError: Can only compare identically-labeled Series objects

mask=(df['timestamp'] >= start & df['timestamp'] <= end)、:私は次のことを行うと、私はその後、私はエラーを取得していますprint(df[column] >= start.iloc[0])をしようとすると

print(end.iloc[-1]) 
    print(start.iloc[0]) 

私は次のように出力

1508504026077 
start_timestamp_milli 1508502348946 
Name: 0, dtype: int64 

を取得していますまた失敗する。

答えて

1

IIUC

mask=(df['timestamp'] >= start & df['timestamp'] <= end) 

df=df[mask] 
+0

私は上記のポストに編集を行っています。 ;) – machinery

+0

@ machinery'df [column]> = start.iloc [0] [0] ' – Wen

関連する問題