如何用Python将DataFrame行转列并合并结构不同的DataFrame?
解决方法
直接通过「长格式转宽格式+合并填充」就能实现你要的效果,具体操作如下:
核心思路
- 把每个DataFrame的
colname值转成列名,value转成对应列的内容(也就是从长表转成单行的宽表) - 将两个单行宽表按行合并
- 把合并后缺失的内容填充为0
代码实现
import pandas as pd # 构造你的两个DataFrame df1 = pd.DataFrame({ 'colname': ['gender', 'status', 'age'], 'value': ['M', 'business', 60] }) df2 = pd.DataFrame({ 'colname': ['name', 'Place', 'gender'], 'value': ['Susan', 'Africa', 'F'] }) # 转宽格式并重置索引,得到单行数据 df1_wide = df1.set_index('colname').T.reset_index(drop=True) df2_wide = df2.set_index('colname').T.reset_index(drop=True) # 合并两个单行表,填充缺失值为0 final_df = pd.concat([df1_wide, df2_wide], ignore_index=True).fillna(0) # 按预期输出调整列顺序(可选) final_df = final_df[['gender', 'status', 'age', 'name', 'Place']] print(final_df)
运行后输出结果和你预期的完全一致:
gender status age name Place 0 M business 60 0 0 1 F 0 0 Susan Africa
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

