将给定 .csv 文件中的现有值替换为 NAN

Posted

技术标签:

【中文标题】将给定 .csv 文件中的现有值替换为 NAN【英文标题】:replace the existing values to NAN in a given .csv file 【发布时间】:2020-11-16 19:01:45 【问题描述】:

您好,我是通过笔记本学习 python 的新手,我通过 .csv 文件提供了 iris 数据集,并要求将某些特定行中的列值之一替换为 NaN。我尝试了“fillna”函数和“替换”功能,但我没有成功。这是我的代码:

import pandas as pd
import numpy as np
from numpy import nan as NaN
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris = pd.read_csv(url)
iris.columns = ['sepal_length','sepal_width','petal_length','petal_width','class']
iris.columns

#iris

iris.petal_length.fillna(np.nan)
iris1=iris.iloc[10:30]
print (iris1)
#bool_series = pd.isnull(iris['petal_length'])
#print (df)

【问题讨论】:

欢迎来到 SO。请阅读***.com/questions/20109391/…,并在问题中包含输入和预期输出*作为文本)。 一个 csv 文件是一个 text 文件,其中只存储表示。您期望 NaN 值的表示形式是什么?只是空字段... 这能回答你的问题吗? Pandas Replace NaN with blank/empty string 我已经在下面回答了,但@balandongiv 链接的答案也应该回答你的问题,并且有很好的例子。 【参考方案1】:

看起来问题是,您没有从.fillna().replace() 保存生成的DataFrame。默认情况下,这些方法返回新的 DataFrame 对象。要解决此问题,请将结果保存到变量中或在 replace()fillna() 调用中使用 inplace=True 参数。

【讨论】:

【参考方案2】:

我认为你可以使用:

这会将 替换为 np.nan 用于花瓣长度列

irirs.petal_length.replace(<some_value>, np.nan)

这将替换petal_length等于的行

irirs[irirs.petal_length == <some_value>] = np.nan

【讨论】:

@SangeethaPuliad 你能提供一个想要的输出吗?

以上是关于将给定 .csv 文件中的现有值替换为 NAN的主要内容,如果未能解决你的问题,请参考以下文章

将 NaN 替换为组的现有值

根据 NaN 将列值替换为 0 或 1 [重复]

如何将给定的 Excel 文件转换为 Python 中的字典?

用 NaN 替换矩阵的某些元素(MATLAB)

Pandas:根据另一列的键在现有列上映射字典值以替换 NaN

使用带有熊猫数据的 CreateDataFrame 时将 NaN 替换为 null