python - 如何在熊猫中将多行合并为一行
问题描述
我有一个具有多行同名但具有不同属性的数据框,我想将这些行组合成单行以进行数据分析
现有数据框:
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 |
解决方案
这只是一个简单的案例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()
推荐阅读
- javascript - 如何将 querySnapshot 结果添加到一个变量中?
- ios - swift 中调用初始化程序错误消息时没有完全匹配
- c++ - C++ Boost::thread invoking a c function - Facing compilation error
- javascript - 寻求帮助修复损坏的承诺链
- javascript - 基于 JavaScript 的 WebSocket 客户端未使用 Spring Reactor Web 套接字接收到浏览器控制台的任何输出
- javascript - 在浏览器中切换选项卡后动画延迟
- java - Mapbox:如何从 Mapbox 定义的 Fragment 中获取 MapView 的引用?
- java - 如果我们在使用 (int)(Math.random()) 时进行强制转换,即使我们乘以另一个值,我们的变量不会被赋值为零吗?
- c# - 我的 ASP.NET Core App Service Web API 如何同时支持 AAD Bearer Token 和 Client Certificate Auth?
- c++ - 如何解决“fpclassify”:对重载函数的模糊调用