Python 连接、合并或联接数据帧以获得新的数据帧
我对python比较陌生,目前正在研究数据帧。假设我有两个不同列标题和大小的数据帧。(df1和df2)我希望将它们连接到一个新的数据帧中,同时将数据帧头转换为一个新行,如组合数据帧中所示。此外,我想将初始列标题名称转换为索引Python 连接、合并或联接数据帧以获得新的数据帧,python,pandas,dataframe,merge,concatenation,Python,Pandas,Dataframe,Merge,Concatenation,我对python比较陌生,目前正在研究数据帧。假设我有两个不同列标题和大小的数据帧。(df1和df2)我希望将它们连接到一个新的数据帧中,同时将数据帧头转换为一个新行,如组合数据帧中所示。此外,我想将初始列标题名称转换为索引 list1 = [('A', ['1','2', '3']), ('B', ['4', '5','6']), ('C', ['7','8','9'])] df1 = pd.DataFrame.from_items(list1) 在新数据帧中,在df1
list1 = [('A', ['1','2', '3']),
('B', ['4', '5','6']),
('C', ['7','8','9'])]
df1 = pd.DataFrame.from_items(list1)
在新数据帧中,在df1之后附加df2标题名的所需组合数据帧输出:
我在下面的代码中尝试过使用concatenate和merge,但由于它们指定了一个公共列,因此无法获得所需的格式
df_combined = pd.concat([df1,df2], axis = 0)
我在stackoverflow中尝试从以前的答案中寻找可能的解决方案,但没有类似的解决方案。有人吗?非常感谢 您可以通过
范围
将列名称转换为默认名称:
df1.columns = range(len(df1.columns))
df2.columns = range(len(df2.columns))
df_combined = pd.concat([df1,df2])
或:
工作完美。非常感谢!
df1.columns = range(len(df1.columns))
df2.columns = range(len(df2.columns))
df_combined = pd.concat([df1,df2])
map1 = dict(zip(df1.columns, range(len(df1.columns))))
map2 = dict(zip(df2.columns, range(len(df2.columns))))
df_combined = pd.concat([df1.rename(columns=map1),
df2.columns.to_frame().T.rename(columns=map2),
df2.rename(columns=map2)], ignore_index=True)
print (df_combined)
0 1 2 3
0 1 4 7 NaN
1 2 5 8 NaN
2 3 6 9 NaN
3 W X Y Z
4 W1 X1 Y1 Z1
5 W2 X2 Y2 Z2
6 W3 X3 Y3 Z3