相关疑难解决方法(0)

获取pandas.read_csv将空值读取为空字符串而不是nan

我正在使用pandas库读取一些CSV数据.在我的数据中,某些列包含字符串.字符串"nan"是可能的值,空字符串也是如此.我设法让大熊猫把"nan"作为一个字符串来读,但我无法弄清楚如何让它不读取空值作为NaN.这是示例数据和输出

One,Two,Three
a,1,one
b,2,two
,3,three
d,4,nan
e,5,five
nan,6,
g,7,seven

>>> pandas.read_csv('test.csv', na_values={'One': [], "Three": []})
    One  Two  Three
0    a    1    one
1    b    2    two
2  NaN    3  three
3    d    4    nan
4    e    5   five
5  nan    6    NaN
6    g    7  seven
Run Code Online (Sandbox Code Playgroud)

它正确地写着"男"为字符串"南",但仍读取空单元格作为NaN的.我想传递strconverters参数read_csv(带converters={'One': str})),但它仍然读取空单元格作为NaN的.

我知道读书,和fillna后,我可以填补值,但真的没有办法告诉大家,在一个特定的CSV列空单元格应该被解读为空字符串,而不是NaN的熊猫吗?

python csv pandas

67
推荐指数
4
解决办法
7万
查看次数

防止pandas在read_csv中自动推断类型

我有一个#-separated文件有三列:第一个是整数,第二个看起来像浮点数,但不是,第三个是字符串.我尝试将其直接加载到python中pandas.read_csv

In [149]: d = pandas.read_csv('resources/names/fos_names.csv',  sep='#', header=None, names=['int_field', 'floatlike_field', 'str_field'])

In [150]: d
Out[150]: 
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1673 entries, 0 to 1672
Data columns:
int_field          1673  non-null values
floatlike_field    1673  non-null values
str_field          1673  non-null values
dtypes: float64(1), int64(1), object(1)
Run Code Online (Sandbox Code Playgroud)

pandas尝试智能并自动将字段转换为有用的类型.问题是我实际上并不希望它这样做(如果我这样做,我会使用这个converters论点).如何防止pandas自动转换类型?

python pandas

15
推荐指数
2
解决办法
7437
查看次数

防止熊猫将“ NA”读为NaN

我正在读取的.csv文件包含值为“ NA”的单元格。熊猫会自动将其转换为NaN,这是我不想要的。我知道该keep_default_na=False参数,但这会将列的dtype更改为object这意味着pd.get_dummies无法正常工作。

有什么方法可以防止熊猫在不更改dtype的情况下将“ NA”读取为NaN吗?

python pandas

6
推荐指数
2
解决办法
2416
查看次数

防止 Pandas read_csv 将 NA 解释为 NaN,但为空值保留 NaN

我的问题与此相关。我有一个名为“test.csv”的文件,其中“NA”作为 的值region。我想将其读为“NA”,而不是“NaN”。但是,test.csv 中的其他列中缺少值,我想将其保留为“NaN”。我怎样才能做到这一点?

# test.csv looks like this:
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这是我尝试过的:

import pandas as pd
# This reads NA as NaN
df = pd.read_csv(test.csv)
df
    region  date    expenses
0   NaN   1/1/2019  53
1   EU    1/2/2019  NaN

# This reads NA as NA, but doesn't read missing expense as NaN
df = pd.read_csv('test.csv', keep_default_na=False, na_values='_')
df
    region  date    expenses
0   NA    1/1/2019  53
1   EU    1/2/2019  

# What I want:
    region  date    expenses
0   NA    1/1/2019  53
1   EU    1/2/2019 …
Run Code Online (Sandbox Code Playgroud)

python csv nan pandas

6
推荐指数
1
解决办法
4816
查看次数

NAN值在python中被认为是字符串

我正在为python中的一个小应用程序编写代码,我意识到当我的导入数据函数中出现错误时,文件(txt,dat,csv ...)包含缺少值,如NAN或"NAN"中的某些数据,如果这些值写为nan或NaN,则导入数据没有问题.

例如

06.02.2011 00:10:00 NAN 43 30 2 37 42 30 2 34 41 19 4 302 5 306 8 69 2810 2811 2810 974 46 130
06.02.2011 00:20:00 36 41 28 2 36 42 27 2 35 42 26 3 295 8 298 8 69 2811 2811 2811 974 46 130
Run Code Online (Sandbox Code Playgroud)

第一行中的值NAN将引发错误,因为它被视为数据中的字符串

虽然具有nan值的文件被认为是缺失值,因此没有问题

06.02.2011 00:10:00 nan 43 30 2 37 42 30 2 34 41 19 4 302 5 306 8 69 2810 2811 2810 974 46 130 …
Run Code Online (Sandbox Code Playgroud)

python nan pandas

2
推荐指数
1
解决办法
2423
查看次数

标签 统计

pandas ×5

python ×5

csv ×2

nan ×2