2017-07-29 34 views
0

我加载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值。

我希望该列作为字符串加载。我认为字符串比对象更好,因为我是新手,我很容易说“如果它是一个你没有做到的对象,那么请修复你输入该列的方式。”


但后来当我检查柱:

prop.dtypes['col1'] 

类型是object

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

str(None) 

不会返回

'None' 

那么,如何使这个进口作为一个字符串?

回答

4

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

如果您的数据与显示的相似,您甚至可以删除dtype参数 - pd.read_csv将自动检测到正确的dtype。除了使用converters参数,你可以使用keep_default_na=Falsethanks to Mitch这个建议):

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很大,这相当于大量的函数调用,这可能会显着减慢解析速度。

相关问题