合并两个具有相同维度的数据集?
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'
然后可能将合并后的数组传输到数据帧中
根据股票数据,我为我想买入的股票(赢家)和做空的股票(输家)创建了两个数据框。这意味着两个数据帧中不是 "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'
然后可能将合并后的数组传输到数据帧中