根据Pandas中的2个条件合并2个数据帧

2024-09-29 21:27:14 发布

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

如何用第一个df中的值替换NaN值:

    country   sex    year      cancer
0   Albania  female  2000       32
1   Albania  male    2000       58
2   Antigua  female  2000       2
3   Antigua  male    2000       5
4   Argen    female  2000       591
5   Argen    male    2000       2061

在第二个df中:

    country year    sex    cancer
0   Albania 1985    female  NaN
1   Albania 1985    male    NaN
2   Albania 1986    female  NaN
3   Albania 1986    male    NaN
4   Albania 1987    female  25.0
5   Antigua 1992    male    NaN
6   Antigua 1985    female  NaN  

最终结果应该如下所示:

country year    sex     cancer 
    0   Albania 1985    female  32
    1   Albania 1985    male    58
    2   Albania 1986    female  32
    3   Albania 1986    male    58
    4   Albania 1987    female  25
    5   Antigua 1992    male    5
    6   Antigua 1985    female  2 

重要的两个条件是国家和性别


Tags: df国家nan条件yearcountrymalefemale
1条回答
网友
1楼 · 发布于 2024-09-29 21:27:14

我最终使用了fillna

df2.set_index(['country','sex'],inplace=True)
df2['cancer']=df2['cancer'].fillna(df1.set_index(['country','sex']).cancer)
df2.reset_index(inplace=True)
df2
Out[745]: 
   country     sex  year  cancer
0  Albania  female  1985    32.0
1  Albania    male  1985    58.0
2  Albania  female  1986    32.0
3  Albania    male  1986    58.0
4  Albania  female  1987    25.0
5  Antigua    male  1992     5.0
6  Antigua  female  1985     2.0

相关问题 更多 >

    热门问题