pandas中read_csv的缺失值处理

今天遇到的问题是,要将一份csv数据读入dataframe,但某些列中含有NA值。对于这些列来说,NA应该作为一个有意义的level,而不是缺失值,但read_csv函数会自动将类似的缺失值理解为缺失值并变为NaN。
看pandas文档中read_csv函数中这两个参数的描述,默认会将’-1.#IND’, ‘1.#QNAN’, ‘1.#IND’, ‘-1.#QNAN’, ‘#N/A N/A’,’#N/A’, ‘N/A’, ‘NA’, ‘#NA’, ‘NULL’, ‘NaN’, ‘-NaN’, ‘nan’, ‘-nan’, ''转换为NaN,且na_values参数还支持定义另外的应处理为缺失值的值。

值得注意的是keep_default_na参数,这个参数的作用是决定要不要保留默认应该转换的缺失值列表,将这个参数设为False之后同时不定义na_values参数,就可以在读取文件时不将任何值转换为缺失值NaN。
例:

import pandas as pd
df = pd.read_csv('train.csv', keep_default_na=False)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,`pandas.read_csv` 和 `np.genfromtxt` 都可以用于读取数据文件,但是它们在读取和处理数据时有一些区别。 `pandas.read_csv` 是 `pandas` 库的函数,它专门用于读取和解析 CSV 文件。它返回的对象是 `pandas` 的 `DataFrame`,可以方便地对数据进行处理和分析。对于大多数常见的数据文件,`read_csv` 函数提供了更多的灵活性和功能,比如处理缺失值、选择特定的列、指定数据类型等。 `np.genfromtxt` 是 `numpy` 库的函数,用于读取各种类型的文本文件。它返回的对象是一个 `numpy` 的多维数组(`ndarray`)。虽然 `genfromtxt` 函数也可以处理 CSV 文件,但相对于 `read_csv`,它的功能较为简单,不提供像处理缺失值、选择特定列等高级功能。 在数据类型方面,两者的默认行为是有所不同的。`np.genfromtxt` 函数根据数据内容进行类型推断,默认情况下,它将尝试将所有数据解析为浮点数。而 `pandas.read_csv` 函数会根据不同列的数据内容进行类型推断,并尽可能地保持原始数据类型。 您可以通过显式指定 `dtype` 参数来控制数据类型,以确保读取的数据与您的期望一致。无论是使用 `read_csv` 还是 `genfromtxt`,在读取数据之后,您都可以根据需要进行进一步的数据类型转换和处理。 总之,`pandas.read_csv` 和 `np.genfromtxt` 都是常用的读取数据文件的函数,但它们在功能和默认行为方面略有不同。具体使用哪个函数取决于您的需求和个人偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值