基于另一列的Pandas类缺失值插补

2024-04-16 07:01:53 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在数据框中填充nan值? 我的数据是这样的

id       state     zone

xxx       AP        south

xxx       AP      

xxx       AP     

xxx       AP     

xxx     delhi    north

xxx     delhi    

xxx     delhi    

xxx     delhi    

xxx     delhi    

如何根据state列(我们已经知道AP只属于south)来填充zone列中缺少的值,如何使用熊猫填充值


Tags: 数据idzonenanxxxapstatesouth
2条回答
  • 首先对值进行排序,使Nan位于最后一个
  • 然后按列分组,我使用(id,state)填充zone
df = pd.DataFrame(data={"id":["x","x","x","x"],
                   "state":["AP","Delhi","AP","Delhi"],
                   "zone":["sount","north",np.nan,np.nan]})

res = df.sort_values(['id','state','zone'])
res = df.groupby(['id','state'],as_index=False)['zone'].ffill()
print(res)
   id  state   zone
0  x     AP  sount
1  x  Delhi  north
2  x     AP  sount
3  x  Delhi  north
  • 如果您只想将状态用作组,请选择第二个答案
df['zone'] = df.groupby(['state'],as_index=False)['zone'].transform(lambda x:x.ffill())
print(df)
  id  state   zone
0  x     AP  sount
1  x  Delhi  north
2  x     AP  sount
3  x  Delhi  north

我认为你需要:

df = df.sort_values(by="state").ffill()
print(df)

相关问题 更多 >