[英]Copy column value from one dataframe to another based on id in Pandas
[英]Impute Pandas dataframe column with value from another row based on ID column
東風:
id name
0 toto
1 tata
0 NaN
我想根據 id 在第三行估算名稱列缺失值。 所需的數據框將是:
id name
0 toto
1 tata
0 toto
我做了以下事情:
df.loc[df.name.isna(), "name"] = df["id"].map(df["name"])
但它不工作。
import pandas as pd
df = pd.DataFrame({'id':[0,1,0],
'name':['toto','tata',pd.NA]})
df = df[['id']].merge(df[pd.notna(df['name'])].drop_duplicates(),
how = 'left',
on = 'id')
df
如果組中只存在一個值,您可以嘗試
df = df.groupby('id').apply(lambda g: g.ffill().bfill())
print(df)
name
0 toto
1 tata
2 toto
或者將NaN
排序到最后
df = (df.sort_values('name')
.groupby('id').ffill()
.sort_index())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.