如何将用熊猫提取的一列excel数据中的NaN替换为0

Posted

技术标签:

【中文标题】如何将用熊猫提取的一列excel数据中的NaN替换为0【英文标题】:How to replace NaN to 0 in one column of excel data extracted with pandas 【发布时间】:2021-11-12 12:03:14 【问题描述】:

我是一个只知道一小部分python基础知识的学生,我正在发布一个问题来解决统计作业中的问题。

https://i.stack.imgur.com/IPaRK.png

我需要从这些 excel 数据中提取值并在 python 中将它们输出为图形。

import numpy as np   
import pandas as pd   
from IPython.display import display   

%matplotlib inline


pd.options.display.max_rows = 13
pd.set_option('display.max_columns',750)


file_name = 'C:\last_amb_hour_time.xls'


df = pd.read_excel(file_name, header=6, index_col=0)   
dfdate = pd.read_excel(file_name, header=6, index_col=0, usecols='A')   
dfpm10 = pd.read_excel(file_name, header=6, index_col=0, usecols='C')   
dfpm25 = pd.read_excel(file_name, header=6, index_col=0, usecols='E')   
dfozon = pd.read_excel(file_name, header=6, index_col=0, usecols='G')   
dfno2 = pd.read_excel(file_name, header=6, index_col=0, usecols='I')   
dfco = pd.read_excel(file_name, header=6, index_col=0, usecols='K')   
dfso2 = pd.read_excel(file_name, header=6, index_col=0, usecols='M')   

目前,数据已以这种方式提取。但是excel数据中很多空白都被当作NaN处理,所以无法输出图表。

https://i.stack.imgur.com/sayMh.png

喜欢这个

我想将一列中的 NaN 替换为 0。但是,如果我使用 dfpm10 = df.fillna(0) 或替换语法,则会输出整个 excel 数据,而不仅仅是一列。

我想知道使用哪个命令将提取的列中的 NaN 数据替换为 0。

这似乎是一个简单的问题,但由于我从未正确学习过python,因此即使尝试了几个小时也无法解决。对不起。

【问题讨论】:

简单地将dataframe df['colname'] = df['colname'].fillna(0)子集化 对不起,我没听懂。我是否必须以与 col2 相同的方式放置 Excel 本身的列名?还是需要提前设置列名? 【参考方案1】:

您应该像这样添加要更改的列的名称

dfpm10 = df    
dfpm10['COLUMN NAME HERE'] = dfPM10['COLUMN NAME HERE'].fillna(0)

【讨论】:

对不起,我不太明白。我不确定如何命名列。从excel图片可以看出,第一行设置名字比较难,因为格式是这样的。 您可以尝试使用它: print("Dataframe columns:", df.columns) 看到列名后,您可以根据需要更改它:df = df.rename (columns="OLD_NAME":"NEW_NAME") print("Dataframe columns:", df.columns) dfpm10 = df.rename(columns="Unnamed: 2":"pm10") dfpm10['pm10'] = dfpm10['pm10'].fillna(0) 谢谢,我已经成功输入了这样的代码来命名列。但是,即使按照这种方法,当我使用display(dfpm10)时,也会打印整个excel数据。只在指定列的NaN值替换为0。按之前输入的dfpm10 = pd.read_excel(file_name, header=6, index_col=0, usecols='C')格式做display(dfpm10)时不能只打印一列吗?

以上是关于如何将用熊猫提取的一列excel数据中的NaN替换为0的主要内容,如果未能解决你的问题,请参考以下文章

熊猫从数据框中的一列中提取部分字符串并将其存储在一个新列中

如何用熊猫(python)中的其他值替换NAN [重复]

在熊猫数据框中替换特殊字符

如何在熊猫中合并两个数据框以替换 nan

如何在熊猫中用 NaN 替换浮点值?

熊猫如何使用 groupby 将 NaN 值替换为平均值 [重复]