基于股票数据,我为要购买的股票(获胜者)和卖空者(失败者)创建了两个数据框。这意味着两个不是“ 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”的数据框。 没有观察到同时出现“赢家”和“失败者”两个值。
是否有任何巧妙的方法将这两者结合起来? 我希望我的问题是可以理解的,并且我已经提供了足够的代码。
答案 0 :(得分:1)
您可以根据需要使用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'
,然后可能将合并的数组转移到数据帧中