合并两个具有相同维度的数据集?

Merging two datasets with same dimensions?

根据股票数据,我为我想买入的股票(赢家)和做空的股票(输家)创建了两个数据框。这意味着两个数据帧中不是 "Winner" 或 "Loser" 的值都采用值 "False"。

WinLos_df = creturns_df.copy()
WinLos_df = WinLos_df.apply(lambda x: (x >= creturns_df['upper bound']))
WinLos2_df = creturns_df.copy()
WinLos2_df = WinLos2_df.apply(lambda x: (x <= creturns_df['lower bound']))
WinLos_df[WinLos_df == True] = 'Winner'
WinLos2_df[WinLos2_df == True] = 'Loser'
print(WinLos_df.tail())
print(WinLos2_df.tail())

这是两个数据集各自的片段:

失败者:

                    MMM    ABT   ABBV   ABMD    ACN   ATVI   ADBE    AMD  \
31-10-2019 00:00  Loser  False  Loser  Loser  False  False  False  False   
29-11-2019 00:00  Loser  False  False  Loser  False  False  Loser  False   
31-12-2019 00:00  False  False  False  Loser  False  False  False  False   
31-01-2020 00:00  Loser  False  False  Loser  False  False  False  False   
21-02-2020 00:00  Loser  False  False  Loser  False  False  False  False 

获胜者:

                   MMM    ABT    ABBV   ABMD    ACN    ATVI    ADBE     AMD  \
31-10-2019 00:00  False  False   False  False  False  Winner   False   False   
29-11-2019 00:00  False  False   False  False  False  Winner   False  Winner   
31-12-2019 00:00  False  False   False  False  False  Winner   False  Winner   
31-01-2020 00:00  False  False  Winner  False  False  Winner   False  Winner   
21-02-2020 00:00  False  False  Winner  False  False  Winner  Winner  Winner 

现在我想加入或合并这两个数据帧,以便我得到一个数据帧,其值为 "Winner" 、"Loser" 和 "False"。 没有观测值同时具有 "Winner" 和 "Loser".

有什么巧妙的方法可以将这两者结合起来吗? 我希望我的问题是可以理解的,并且我已经提供了足够的代码。

您可以根据要求使用dfs的固有值

WinLos = WinLos_df.values
WinLos2 = WinLos2_df.values
n,m = WinLos_df.shape

merged = np.empty(shape=(n,m), dtype=object)

for i in range(n):
  for j in range(m):
      merged[i,j] = False
      if WinLos[i,j]:
        merged[i,j] = 'Winner'
      if WinLos2[i,j]:
        merged[i,j] = 'Looser'

然后可能将合并后的数组传输到数据帧中