Rob*_*988 3 python dataframe pandas
df1 有缺失值:
df1=
ID age
1 12
2 na
3 23
4 na
5 na
6 na
Run Code Online (Sandbox Code Playgroud)
我还有另一个df:
df2=
ID age
2 4
4 5
5 6
6 7
Run Code Online (Sandbox Code Playgroud)
我想要fillna的df1,使用df2,基于相同的ID:
df1 (after fillna)=
ID age
1 12
2 4
3 23
4 5
5 6
6 7
Run Code Online (Sandbox Code Playgroud)
您可以ID为两个数据帧设置索引,然后使用fillna()填充缺失值的方法,同时匹配两个数据帧的索引:
df1.set_index("ID").age.fillna(df2.set_index("ID").age).reset_index()
# ID age
#0 1 12
#1 2 4
#2 3 23
#3 4 5
#4 5 6
#5 6 7
Run Code Online (Sandbox Code Playgroud)
另一个选项是, combine_first,它从第一个数据帧中获取值,如果不是null,则从第二个数据帧中获取值,索引和列匹配:
df1.set_index("ID").combine_first(df2.set_index("ID")).reset_index()
# ID age
#0 1 12.0
#1 2 4.0
#2 3 23.0
#3 4 5.0
#4 5 6.0
#5 6 7.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6538 次 |
| 最近记录: |