私は一時的なKDFカーネルを値のリスト(またはnumpy配列)として持っています。numpy/pandasのベクター化されたlist.get()解答
私のデータは以下の通りです: - kde:7 * 24 * 60の長さの浮動小数値のリストまたはndarray。 - df:0〜7 * 24 * 60-1の範囲内の整数値を持つtimestamp
列を含む、異なるタイプの〜50列のDataFrame。データフレームには2000000レコードがあります。サンプルとして
:
col1|col2|...|col49|timestamp
1 | 2 |...| 49 | 15
2 | 3 |...| 50 | 16
私の所望の出力は、kde
から対応する値を含む、カラムで、非常にsame dataframe
なければなりません。言い換えれば、データフレームの各レコードについて、レコードタイムスタンプを使用してKDE値を取得する必要があります。私はできるだけ早くそれを行う必要があります。
所望の成果:今の
col1|col2|...|col49|timestamp | kd
1 | 2 |...| 49 | 15 | 0.342
2 | 3 |...| 50 | 16 | 0.543
、私は(.apply使用):
df['kd'] = df.timestamp.apply(lambda z: kde[z])
しかし、それは(私の知る限り理解として)として、比較的遅い動作します、それはまだ主題でありますGILの制限に。この非常に単純な関数をベクトル化する方法はありますか?
にしてください、あなたは後です:{( 'DF = pd.DataFrame 'kd':kde}) '?または、 'df'が既に存在する場合:' df ['kd'] = kde' ... – MaxU
MaxU、私のデータフレームには数百万のレコードが含まれています。それぞれのために、7 * 24 * 60レコードを含むkdeから値を取得する必要があります。私はこのアプローチが行くとは思わない。結果はタイムスタンプ値に依存する必要があります –
サンプルの_input_と_desired_データセットを提供してください。あなたの手助けをする方法を理解できるようにしてください。[how-to-make-good-reproducible-pandas-examples] //stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples) – MaxU