python - 如何在执行比较时忽略 Nan
问题描述
我有如下熊猫数据框,
Location Loc_Code Service_Onroad Service_Cargo
0 Bangalore Vadakara01 Common Common
1 Bangalore Hosdung02 Transit Transit
2 Bangalore Hosdung02 Common Transit
3 Bangalore Kozhikode Common Common
4 Bangalore Malappuram Transit Transit
5 Bangalore Kalpetta09 Common Common
6 Bangalore Kasargod Transit Transit
7 Bangalore Maananthavaadi Common Common
8 Bangalore Alattur Transit Transit
9 Bangalore Pazhani Common NaN
10 Bangalore Ernakulam Transit Transit
11 Bangalore Aluva Connect Connect
12 Bangalore Kochi Common Transit
13 Bangalore Kochi Transit Transit
14 Bangalore Paravoor Common Common
15 Bangalore Chaavakkaad Transit Transit
16 Bangalore Tirur Transit Transit
17 Bangalore Mannaarkkad Common Common
18 Bangalore Koramangala NaN NaN
19 Bangalore Rajna NaN NaN
20 Bangalore Palai09 Interconnect NaN
21 Bangalore Palai09 Common NaN
我想比较Service_Onroad
,Service_Cargo
如果匹配,我想Matched
在新列(即结果)中将其写为“”。如果不匹配,我想把它写成“ Not Matched
”。在任何列 ( Service_Onroad
& Service_Cargo
) 中,如果值为 NaN,那么我不想在那里写任何东西。
我们如何进行比较?我相信在Pandas中, Nan 也被用作比较结果为“FALSE”的字符串?那么我们如何排除这种情况呢?
解决方案
试试这个:
df['Match'] = np.where((df['Service_Onroad']==df['Service_Cargo']), 'Matched', 'Non-Matched')
df['Match'] = np.where((df['Service_Onroad'].isna()) | (df['Service_Cargo'].isna()), '', df['Match'])
print(df)
Location Loc_Code Service_Onroad Service_Cargo Match
0 Bangalore Vadakara01 Common Common Matched
1 Bangalore Hosdung02 Transit Transit Matched
2 Bangalore Hosdung02 Common Transit Non-Matched
3 Bangalore Kozhikode Common Common Matched
4 Bangalore Malappuram Transit Transit Matched
5 Bangalore Kalpetta09 Common Common Matched
6 Bangalore Kasargod Transit Transit Matched
7 Bangalore Maananthavaadi Common Common Matched
8 Bangalore Alattur Transit Transit Matched
9 Bangalore Pazhani Common NaN
10 Bangalore Ernakulam Transit Transit Matched
11 Bangalore Aluva Connect Connect Matched
12 Bangalore Kochi Common Transit Non-Matched
13 Bangalore Kochi Transit Transit Matched
14 Bangalore Paravoor Common Common Matched
15 Bangalore Chaavakkaad Transit Transit Matched
16 Bangalore Tirur Transit Transit Matched
17 Bangalore Mannaarkkad Common Common Matched
18 Bangalore Koramangala NaN NaN
19 Bangalore Rajna NaN NaN
20 Bangalore Palai09 Interconnect NaN
21 Bangalore Palai09 Common NaN
推荐阅读
- firebase - npm run build 失败:语法错误:TypeError:无法读取未定义的属性“parseComponent”
- python - RMSE结果和解释
- python - 在Python中获得BOW后如何保留DataFrame索引
- stripe-payments - 我应该创建一个单独的实体来列出 Stripe 中的订阅历史记录,还是只使用条带提供的订阅信息
- azure - 用于 ms azure 的 URL 重写模块 (web.config) 文件
- android - 将 ADB 推送到没有 USB 和 root 的设备
- javascript - 从函数编号属性返回多个元素
- android - 自动调整图像视图以适应小屏幕尺寸
- xquery - 在 MarkLogic 中使用 XQuery 调用 java 函数
- reactjs - 如何右对齐这些项目?