有没有办法在python中创建以下数据帧?
我是python新手,需要做以下工作。不确定它是否被称为“join”。 我有两个数据帧:有没有办法在python中创建以下数据帧?,python,dataframe,join,Python,Dataframe,Join,我是python新手,需要做以下工作。不确定它是否被称为“join”。 我有两个数据帧: df1 = pd.DataFrame({'column_A': ['A0', 'A1', 'A2', 'A3'], 'column_B': ['B0', 'B0', 'B1', 'B1']}]) df2 = pd.DataFrame({'column_C': ['1', '2', '3'], 'column_D': ['0', '3.5', '7.5'], 'column_E': ['3.6', '7.6'
df1 = pd.DataFrame({'column_A': ['A0', 'A1', 'A2', 'A3'],
'column_B': ['B0', 'B0', 'B1', 'B1']}])
df2 = pd.DataFrame({'column_C': ['1', '2', '3'],
'column_D': ['0', '3.5', '7.5'],
'column_E': ['3.6', '7.6', '11'])
我需要创建以下数据帧:
df_最终版本:
column_A column_B column_C column_D column_E
A0 B0 3 7.6 11.0
A1 B0 3 7.6 11.0
A2 B1 3 7.6 11.0
A3 B1 3 7.6 11.0
A0 B0 2 3.6 7.5
A1 B0 2 3.6 7.5
A2 B1 2 3.6 7.5
A3 B1 2 3.6 7.5
A0 B0 1 0 3.5
A1 B0 1 0 3.5
A2 B1 1 0 3.5
A3 B1 1 0 3.5
当我使用concat时,并没有给我确切的上述结果。
有什么想法吗?看起来您想要两个数据帧的笛卡尔乘积。一种方法是使用“合并”创建要在其中合并的帮助器列:
df1.assign(key=0).merge(df2.assign(key=0), on='key').drop(['key'], axis=1)
column_A column_B column_C column_D column_E
0 A0 B0 1 0 3.6
1 A0 B0 2 3.5 7.6
2 A0 B0 3 7.5 11
3 A1 B0 1 0 3.6
4 A1 B0 2 3.5 7.6
5 A1 B0 3 7.5 11
6 A2 B1 1 0 3.6
7 A2 B1 2 3.5 7.6
8 A2 B1 3 7.5 11
9 A3 B1 1 0 3.6
10 A3 B1 2 3.5 7.6
11 A3 B1 3 7.5 11
欢迎@ChrissieM.:别忘了你可以投票并接受答案。看,谢谢!