【问题标题】:How to replace NaN to 0 in one column of excel data extracted with pandas如何将用熊猫提取的一列excel数据中的NaN替换为0
【发布时间】: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 本身的列名?还是需要提前设置列名?

标签: python excel pandas dataframe numpy


【解决方案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)时不能只打印一列吗?
猜你喜欢
  • 2015-10-12
  • 2014-07-07
  • 2022-01-03
  • 2015-08-04
  • 1970-01-01
  • 2018-03-25
  • 2021-12-08
  • 2020-10-27
  • 1970-01-01
相关资源
最近更新 更多