例如,我想将两个数据框合并在一起,以模仿“ select * from A,B”, 表A将如下所示:
import pandas as pd
table_a = pd.DataFrame({'id': ['A', 'B']})
表B看起来像这样:
import pandas as pd
table_b = pd.DataFrame({'x': [1,2], 'y':[3,4]})
我想拥有的是
import pandas as pd
table_c = pd.DataFrame({'id':['A', 'A', 'B', 'B'],
'x': [1,2,1,2], 'y':[3,4,3,4]})
即复制A和B table_b.shape [0]次并追加。
我相信有多种方法可以做到这一点。例如,
a = table_b.loc[np.tile(table_b.index.values, table_a.shape[0])]
b = table_a.loc[np.repeat(table_a.index.values, table_b.shape[0])]
a['id'] = b['id'].values
还有其他更好的方法吗?谢谢
答案 0 :(得分:1)
pd.DataFrame([
d1 + d2
for d1 in zip(*map(table_a.get, table_a))
for d2 in zip(*map(table_b.get, table_b))
], columns=table_a.columns.append(table_b.columns))