python - 用相似的列值Python填充数据框中的缺失值
问题描述
我有一个数据框,其中一些值分布不均匀 - 有些缺失,有些没有缺失。
数据如下所示:
Utility Location ID Name Unit1 Mover1 Unit2 Mover2
500 Municipal 75 Glover 1A GT
500 Municipal 75 Glover 2A GT
500 75 Glover 3A GT
500 Municipal 75 Glover 1A GT
500 75 Glover 2A GT
500 75 Glover 3A GT
.
.
51 Provincial 85 Toshi 1 CT 1B CT
51 Provincial 85 Toshi 2 CT 2B CT
51 Provincial 85 Toshi 5 ST 5B1 ST
我想在Unit1 = Unit2
何时何地填充和合并数据框,Mover1 = Mover2
但只保留已经匹配的部分 -Toshi
值。第二个需要是让Location
值填充与, 和- 相似的值Name
,如果其中任何一个匹配,则应使用之前使用的值填充。ID
Utility
Location
输出如下所示:
Utility Location ID Name Unit1 Mover1 Unit2 Mover2
500 Municipal 75 Glover 1A GT 1A GT
500 Municipal 75 Glover 2A GT 2A GT
500 Municipal 75 Glover 3A GT 3A GT
.
.
51 Provincial 85 Toshi 1 CT 1B CT
51 Provincial 85 Toshi 2 CT 2B CT
51 Provincial 85 Toshi 5 ST 5B1 ST
有没有一种简单的方法可以像上面一样压缩这个数据框?
解决方案
我只能想出这个慢的解决方案(Two apply
s must be slow),高性能请查看
Python:Justifying NumPy array
df.groupby(['Utility','ID','Name']).apply(lambda x : x.apply(lambda y : sorted(y,key=pd.isna))).dropna()
Out[51]:
Utility Location ID Name Unit1 Mover1 Unit2 Mover2
0 500 Municipal 75 Glover 1A GT 1A GT
1 500 Municipal 75 Glover 2A GT 2A GT
2 500 Municipal 75 Glover 3A GT 3A GT
6 51 Provincial 85 Toshi 1 CT 1B CT
7 51 Provincial 85 Toshi 2 CT 2B CT
8 51 Provincial 85 Toshi 5 ST 5B1 S
推荐阅读
- javascript - 如何将对象从视图传递到 ASP.NET MVC 中的控制器?
- javascript - 将输入数据从子级传递给父级 React.js
- python - 包括函数的循环,因此如果数字不正确,它可以要求用户重新输入数字
- swift5 - WooCommerce Rest API JSON formate Complex implementation in Swift
- react-final-form - 当使用 react-final-form 从表单数组中删除元素时,显示的值不会更新,但最终形式的数据对象会
- machine-learning - CFG : Every rule in a context-free grammar is of the form: A->B, What do A and B represent?
- gitlab - Git Lab CI/CD for web app running in windows serer(VM) IIS
- r - 使用 r 查看“根词”是否在“完整词”内
- laravel - Validation can not updating value in database
- mysql - 对于此服务器版本,“DECLARE”在此位置无效,预期:错误