我需要使用read_csv()
从csv文件中创建一个dataframe。csv文件中的大多数列都是整数类型(如购买的产品数量)或字符串类型(如商店名称),但有时可能会有浮点类型(如产品的重量(磅))。
我意识到,如果有空白单元格,Pandas会将整数(int64)列转换为浮点数(float64),这就变成了NaN,这是一种浮点类型。
我想保留原来有整数的单元格,程序的其他部分也依赖于此。
我试过:
for col in data.columns:
if data[col].dtype == np.float64:
data[col] = data[col].astype(float).astype('Int64')
但是这会尝试将所有的浮点列都变成整数,有可能我希望保持浮点的列最初是浮点的(而不是因为NaN而被强制变成浮点的)。
当使用read_csv()
时,我不能为每个列的dtype指定字典,因为每个数据集都是不同的,这将是大量的手工工作。
我想知道是否有一种方法可以在阅读csv时将所有列都视为“对象”类型?据我所知,“对象”类型允许列中的混合类型。
1条答案
按热度按时间cwdobuhd1#
当使用
read_csv()
时,我不能为每列的dtype指定字典,因为每个数据集都是不同的,这将是大量的手工工作。在这种情况下,使用
convert_dtypes
,它将仅在需要时自动分配Int64
: