首页 > 解决方案 > 如何在熊猫中将多行合并为一行

问题描述

我有一个具有多行同名但具有不同属性的数据框,我想将这些行组合成单行以进行数据分析

现有数据框:

import pandas as pd
d = {'name' : ['ZEE', 'ZEE', 'ZEE', 'ZEE', 'ZEE'], 
     'A': ['A1','','','',''],
     'B': ['','B1','','',''],
     'C': ['','','','',''],
     'D': ['','','','D1',''],
     'E': ['','','','','E1'],
    }
df = pd.DataFrame(data=d)

o= {'name' : ['ZEE'], 'A': ['A1'],'B': ['B1'],'C': [''],'D': ['D1'],'E': ['E1']}
o = pd.DataFrame(data=o)
o

输入 :

姓名 一个 C D
A1
B1
D1
E1

输出:

姓名 一个 C D
A1 B1 D1 E1

标签: pythonpandasmerge

解决方案


这只是一个简单的案例groupby()。将空字符串转换为 NaN 很重要

d = {'name' : ['ZEE', 'ZEE', 'ZEE', 'ZEE', 'ZEE'], 
     'A': ['A1','','','',''],
     'B': ['','B1','','',''],
     'C': ['','','','',''],
     'D': ['','','','D1',''],
     'E': ['','','','','E1'],
    }
df = pd.DataFrame(data=d)
df.replace({"":np.nan}).groupby("name").first().reset_index()

推荐阅读