将(字符串和nils)加载为字符串

时间:2017-07-29 21:27:54

标签: python pandas

我正在加载一个CSV文件:

converters = {
    ...
    col1: str,
    ...
}

prop = pd.read_csv(
    'input/properties_2016.csv',
    dtype=types,
    converters=converters,
)

该列的数据如下:

'acura',123
'ford',234
'dodge',345
,567

因此第四项被解释为N / A值。

我希望该列作为字符串加载。我认为字符串比对象更好,因为我是新的,我很容易说'#34;如果它是一个对象你没有做对,那么修复你如何导入该列"

但是当我检查专栏时:

prop.dtypes['col1']

类型为object

我期待NA值转换为字符串,因为:

str(None)

确实返回

'None'

那么如何将此导入作为字符串?

1 个答案:

答案 0 :(得分:4)

Pandas将一系列字符串的dtype设置为object 字符串可以是可变宽度。所以,就我所知,你已经做好了一切。

如果您的数据与显示的数据类似,您甚至可以移除dtype参数 - pd.read_csv会自动检测到正确的dtype。您可以使用convertersthanks to Mitch作为此建议)而非使用keep_default_na=False参数:

prop = pd.read_csv('input/properties_2016.csv', header=None, keep_default_na=False)

产量

         0    1
0  'acura'  123
1   'ford'  234
2  'dodge'  345
3           567

PS:如果可以,请避免使用converters - 转换器功能分别应用于列中的每个值,因此如果您的CSV很大,相当于很多函数调用,这可能会减慢大大解析。