python - 如何在 pandas 中将值从一个数据帧移动到另一个数据帧?

标签 python pandas dataframe

我有一个看起来像这样的 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_indexunstackreindex 直接从 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/

相关文章:

python - 加快顺序检查点是否在 Python 中的形状

从 R 中的 CSV 文件读取 `...` 中定义的函数输入值

r - 提取数据帧中dplyr函数中列的定义范围内值不为NA的每一列的列名

python - 根据 csv 中存储的路径和文本值高效更新 XML 文本内容

python - 在 julian date python 中创建一个日期范围

python - 根据字典重命名 Pandas 中的列

python - 将 pandas 选定的列转换为 2D numpy 数组

python - Pandas : data frame transformation

Python - 用于将数据插入数据库的 MySql 访问

python - 在 zmq.PAIR 套接字上从 zmq.error.Again 中恢复