如何用Pandas根据Flag列值替换SO2列为NaN并导出Excel
解决Pandas条件替换SO2值并导出Excel的问题
原始数据集
Date Hour SO2 Flag 22/05/2023 14:00 0.75 V 22/05/2023 15:00 0.79 M 22/05/2023 16:00 0.75 V 22/05/2023 17:00 0.79 V 22/05/2023 18:00 0.65 Z
需求
当Flag列值为M或Z时,将对应SO2列的值替换为NaN,之后导出为xlsx文件。
解决方案
利用Pandas的loc方法结合条件判断实现,修改后的代码如下:
import numpy as np import pandas as pd # 读取目标Excel文件 xls = pd.read_excel('/content/data.xls', sheet_name='Horario') # 保留你原有替换*为空的操作 data2 = xls.replace('*', '') # 核心逻辑:定位Flag为M或Z的行,将对应SO2列设为NaN data2.loc[data2['Flag'].isin(['M', 'Z']), 'SO2'] = np.nan # 导出处理后的数据到新Excel文件 data2.to_excel('/content/fil2.xlsx', index=False)
关键说明
data2['Flag'].isin(['M', 'Z']):精准筛选出Flag列值为M或Z的行loc[行筛选条件, 目标列名]:定位到符合条件的行与指定列,直接赋值为np.nan
内容的提问来源于stack exchange,提问作者docwho
相关产品推荐
相关产品推荐

