1

インデックスが日時インデックスを使用している場合、パンダのリサンプリングは非常に便利ですが、任意の係数でリサンプリングする簡単な実装は見つかりませんでした。たとえば、各インデックスを任意のインデックスとして扱い、データフレームをリサンプリングして、結果の長さが 4 分の 1 になるようにします (4 番目ごとのデータポイントを取得するよりもインテリジェントになります)。

これは、日時よりもはるかに短いタイムスケールで動作するデータを操作しているすべての人にとって役立ちます。たとえば、私の場合、オーディオ ベクトルを 44KHz から 11KHz にリサンプリングしたいと考えています。現在、scipyの「デシメート」機能を使用してから、データフレームに再変換する必要があります(データフレームの長さが変わるため、dataframe.applyを使用しても機能しませんでした)。

これを達成する方法について何か提案はありますか?

4

3 に答える 3

0

私は提案する汚いが効果的な答えを持っています:

データフレームが data と呼ばれる場合、最初に次のように他の列にインデックス列を複製します。

for i in data.index:
    data.at[data.index[i],'num']=i

次に、パンダの複雑な選択機能を使用して単純にリサンプリングします。

data_resampled = data[data['num']%frequency==0]

インデックス列をコピーせずにこれを行うことができるか、おそらくこれをよりエレガントにする専用のコマンドが存在します。それでも、これは機能します。

于 2020-07-12T20:35:00.767 に答える