gpt4 book ai didi

python - 用相似的列值填充数据框中的缺失值Python

转载 作者:太空宇宙 更新时间:2023-11-03 21:20:26 24 4
gpt4 key购买 nike

我有一个数据框,其值分布不均匀 - 有些丢失,有些未丢失。

数据如下所示:

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 = Unit2Mover1 = Mover2 时填充并合并数据框,但单独保留已经匹配的部分 - Toshi值。第二个需要是使用与 NameIDUtility 类似的值填充 Location 值- 如果其中任何一个匹配,则应使用之前使用的 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

有没有一种简单的方法可以像上面那样压缩这个数据框?

最佳答案

我只能想出这个缓慢的解决方案(两个 apply 一定很慢),为了获得高性能,请检查 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

关于python - 用相似的列值填充数据框中的缺失值Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com