代码
cols = df_1.columns.append(df_2.columns)
out = df_2.merge(df_1, how='cross')[cols]
输出结果
A1 B1 B2 B3
0 2023-12-30 Sam 159cm 300gm
1 2023-12-31 Sam 159cm 300gm
2 2023-12-30 Tam 175cm 400gm
3 2023-12-31 Tam 175cm 400gm
然而,这种方法虽然简单,但如果数据框过大,处理起来可能会相当耗时。
示例代码
import pandas as pd
data1 = {'A1': {0: '2023-12-30', 1: '2023-12-31'}}
data2 = {'B1': {501: 'Sam', 502: 'Tam'},
'B2': {501: '159cm', 502: '175cm'},
'B3': {501: '300gm', 502: '400gm'}}
df_1 = pd.DataFrame(data1)
df_2 = pd.DataFrame(data2)