相关疑难解决方法(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中的float

在pandas中使用read_csv时,有没有办法将'34%'等值直接转换为int或float?我希望它直接读为0.34.

在read_csv中使用它不起作用:

read_csv(..., dtype={'col':np.float})
Run Code Online (Sandbox Code Playgroud)

将csv加载为'df'后,这也无法使用错误"float()的无效文字:34%"

df['col'] = df['col'].astype(float)
Run Code Online (Sandbox Code Playgroud)

我最终使用了这个有效,但是很长时间:

df['col'] = df['col'].apply(lambda x: np.nan if x in ['-'] else x[:-1]).astype(float)/100
Run Code Online (Sandbox Code Playgroud)

python pandas

22
推荐指数
2
解决办法
3万
查看次数

不一致的pandas read_csv dtype推断大型TSV文件中的大部分整数字符串列

我有一个制表符分隔文件,其中一列应该被解释为一个字符串,但许多条目都是整数.使用小文件read_csv在看到一些非整数值后正确地将列解释为字符串,但是对于较大的文件,这不起作用:

import pandas as pd
df = pd.DataFrame({'a':['1']*100000 + ['X']*100000 + ['1']*100000, 'b':['b']*300000})
df.to_csv('test', sep='\t', index=False, na_rep='NA')
df2 = pd.read_csv('test', sep='\t')
print df2['a'].unique()
for a in df2['a'][262140:262150]:
    print repr(a)
Run Code Online (Sandbox Code Playgroud)

输出:

['1' 'X' 1]
'1'
'1'
'1'
'1'
1
1
1
1
1
1
Run Code Online (Sandbox Code Playgroud)

有趣的是262144是2的幂,所以我认为推理和转换发生在块中,但是正在跳过一些块.

我相当肯定这是一个错误,但是想要一个可能使用引用的解决办法,尽管为读写添加quoting = csv.QUOTE_NONNUMERIC并不能解决问题.理想情况下,我可以通过引用我的字符串数据来解决这个问题,并以某种方式迫使pandas不对引用的数据进行任何推断.

使用pandas 0.12.0

python csv types type-inference pandas

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

标签 统计

pandas ×3

python ×3

csv ×2

type-inference ×1

types ×1