python - Pandas groupby 给出任何非 nan 值
问题描述
我正在尝试在给定此 groupby 索引的表上执行 groupby,所有值都是正确的或 Nan。例如:
id country name
0 1 France None
1 1 France Pierre
2 2 None Marge
3 1 None Pierre
4 3 USA Jim
5 3 None Jim
6 2 UK None
7 4 Spain Alvaro
8 2 None Marge
9 3 None Jim
10 4 Spain None
11 3 None Jim
我只想获取 4 个人中每个人的价值观,这不应该发生冲突,例如:
country name
id
1 France Pierre
2 UK Marge
3 USA Jim
4 Spain Alvaro
我试过了:
groupby().first()
groupby.nth(0,dropna='any'/'all')
乃至
groupby().apply(lambda x: x.loc[x.first_valid_index()])
一切都无济于事。我错过了什么?
编辑:帮助您制作示例数据框以进行测试:
df = pd.DataFrame({'id':[1,1,2,1,3,3,2,4,2,3,4,3],'country':['France','France',None,None,'USA',None,'UK','Spain',None,None,'Spain',None],'name':[None,'Pierre','Marge','Pierre','Jim','Jim',None,'Alvaro','Marge','Jim',None,'Jim']})
解决方案
Pandas groupby.first返回第一个非空值,但不支持 None,试试
df.fillna(np.nan).groupby('id').first()
country name
id
1 France Pierre
2 UK Marge
3 USA Jim
4 Spain Alvaro
推荐阅读
- python - `groupby` 列未传递给 `apply` 函数。Pandas 中可能存在的错误?
- windows - 如何编写批处理文件以查找文件并复制名称然后显示?
- python - 出现错误:发生意外异常:django 电子邮件中的模板/电子邮件.txt
- javascript - JS函数声明后调用
- node.js - 'TypeError: fs.existsSync 不是函数' ReactJS 和 Electron
- opencv - 裁剪图像如何影响相机校准内在函数?
- ruby - 警告:锁定文件正在更新到 Bundler 2,之后您将无法返回到 Bundler 1
- python - 您如何提交对需要使用 Python 登录 google 帐户的 google 表单的响应?
- javascript - 使用书签访问网页的源代码?
- excel - 如何使宏适用于多个工作表?