Python 如何基于同一数据帧中另一列的值替换数据帧中列中的NaN值

Python 如何基于同一数据帧中另一列的值替换数据帧中列中的NaN值,python,pandas,dataframe,numpy,data-science,Python,Pandas,Dataframe,Numpy,Data Science,下面是我正在工作的数据帧。我想使用“国家”列和“行业”列中的值替换“分数”列中的NaN值 Country Sectors Score 0 USA MECH NaN 1 IND ELEC 10.0 2 USA CHEM NaN 3 RUS ENT 34.0 4 PAK MATH 45.0 5 SL LAN 23.0 6 USA CHEM 56

下面是我正在工作的数据帧。我想使用“国家”列和“行业”列中的值替换“分数”列中的NaN值

   Country Sectors  Score
0      USA    MECH    NaN
1      IND    ELEC   10.0
2      USA    CHEM    NaN
3      RUS     ENT   34.0
4      PAK    MATH   45.0
5       SL     LAN   23.0
6      USA    CHEM   56.0
7      IND    ELEC   32.0
8      USA    CHEM    NaN
9      RUS     ENT   45.0
10     PAK    MATH   45.0
下面是我尝试过的代码


import pandas as pd
import numpy as np
df = pd.read_csv('../Data/Data.csv')
df['Score'] = df[(df['Country'] == 'USA') & (df['Sectors'] == 'CHEM') & (df['Score'].isnull())]['Score'].fillna(10)
print(df)

```but I am getting below result```

   Country Sectors  Score
0      USA    MECH    NaN
1      IND    ELEC    NaN
2      USA    CHEM   10.0
3      RUS     ENT    NaN
4      PAK    MATH    NaN
5       SL     LAN    NaN
6      USA    CHEM    NaN
7      IND    ELEC    NaN
8      USA    CHEM   10.0
9      RUS     ENT    NaN
10     PAK    MATH    NaN

我只想替换特定于country='USA'和sections=='CHEM'的NaN值,并保持所有值不变。有人能帮忙吗?`

您可以使用:

>df=pd.DataFrame({'Country':['USA'、'IND'、'USA']、'sections':['MECH'、'ELEC'、'CHEM']、'Score':[45.0,30.0,np.NaN]})
>>>df[“分数”]=np.其中((df[“国家”]=“美国”)和(df[“行业”]=“化学”),10,df[“分数”])
>>>df
国家部门得分
0美国机械45.0
1 IND ELEC 30.0
2美国化学10.0

如果
df[“Country”]=“USA”
df[“sections”]=“CHEM”
,则
df[“Score”]
设置为
10
,否则,设置
df[“Score”]
中的原始值。

是的,谢谢,它现在正在工作