これは本当に簡単なはずなのに、苦労しています。私がこれを持っているとしましょう:
df1:
ticker hhmm <--- The hhmm value corresponds to the column in df2
====== ====
AAPL 0931
IBM 0930
XRX 1559
df2:
ticker 0930 0931 0932 ... 1559 <<---- 390 columns
====== ==== ==== ==== ... ====
AAPL 4.56 4.57 ... ...
IBM 7.98 ... ... ...
XRX 3.33 ... ... 3.78
目標は、値がdf2 [df1 ['hhmm']]であるdf1に新しい列を作成することです。
例えば:
df1:
ticker hhmm df2val
====== ==== ======
AAPL 0931 4.57
IBM 0930 7.98
XRX 1559 3.78
どちらのdfもインデックスとして「ティッカー」を持っているので、単純に結合できますが、これはメモリを使いすぎていると想定します(使用しているデータフレームはここに示す例よりもはるかに大きいです)。
私は適用しようとしました、そしてそれは遅いです(実行するのに15分)。
これを行うためのパンダの方法は何ですか?ありがとう!
と呼ばれる関数があります lookup
df1['val']=df2.set_index('ticker').lookup(df1.ticker,df1.hhmm)
df1
Out[290]:
ticker hhmm val
0 AAPL 0931 4.57
1 IBM 0930 7.98
2 XRX 1559 33.00# I make up this number
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加