【发布时间】:2018-08-17 06:33:21
【问题描述】:
我在 CSV 文件中有几列后缀为 _id。它们中的大多数是整数,但有时它们没有值(NaN - CSV 文件中为空)。例如,一些名称可能是:
- user_id
- device_id
- company_id
- country_id
- ...
当我使用pd.read_csv 时,它会将其中一些识别为 int64,而另一些识别为 float64。我不确定,但我认为这些标识符的“正确”类型是 object。
我知道read_csv 具有dtype 属性。所以我能做的是:
dtypes = {'user_id': str,
'device_id': str,
'company_id': str,
'country_id': str}
df = pd.read_csv('file.csv', dtype=dtypes)
这样做的缺点是我必须指定所有列。有没有办法将此应用于所有“*_id”列?如果我之后使用df['user_id'].astype(object),当熊猫已经“识别”int64 或float64 时会有所不同吗?
【问题讨论】: