我有一个看起来像这样的 df1:
Symbol Order Shares
Date
2009-01-14 AAPL BUY 150
2009-01-21 AAPL SELL 150
2009-01-21 IBM BUY 400
df2 看起来像这样:
GOOG AAPL XOM IBM Cash
Date
2009-01-14 NaN NaN NaN NaN NaN
2009-01-21 NaN NaN NaN NaN NaN
我想将第一个 DF 中的值移至第二个 DF 中,以便股票数量填充在适当的股票代码下。所以上面的内容看起来像:
GOOG AAPL XOM IBM Cash
Date
2009-01-14 NaN 150 NaN NaN NaN
2009-01-21 NaN -150 NaN 400 NaN
如何将第一个数据框中的所有值移动到第二个数据框中?
最佳答案
这里你真的不需要df2
。您可以使用一些简单的 reshape 函数 set_index
、unstack
和 reindex
直接从 df 计算结果。您只需要符号列表。
(df.assign(Shares=np.where(df.Order == 'BUY', df.Shares, -df.Shares))
.drop('Order', 1)
.set_index('Symbol', append=True)['Shares']
.unstack(1)
.reindex(df2.columns, axis=1)) # you can replace df2.columns with a list
GOOG AAPL XOM IBM Cash
Date
2009-01-14 NaN 150.0 NaN NaN NaN
2009-01-21 NaN -150.0 NaN 400.0 NaN
关于python - 如何在 pandas 中将值从一个数据帧移动到另一个数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55052168/