gpt4 book ai didi

Python:Pandas 读取 csv:读取 csv 时向下转换

转载 作者:行者123 更新时间:2023-12-01 08:18:46 30 4
gpt4 key购买 nike

我遇到以下问题。我想读取一个包含数百万行和数百列的大型 csv。我想向下转换列的数据类型。我的方法是读取 csv,然后使用 pd.to_numeric() 对其进行向下转换。我不知道列数及其类型。在读取 csv 时是否有可能进行向下转换,这样我就不必触摸数据框两次?

我当前的方法是:

import pandas as pd
df = pd.read_csv(filePath, delimiter=delimiter, memory_map=True,engine='c', low_memory=True)
for column in df:
if is_numeric_dtype(df[column]):
df[column] = pd.to_numeric(df[column], downcast='signed')
df[column] = pd.to_numeric(df[column], downcast='float')

提前致谢!

最佳答案

如果有人遇到同样的问题,您可以轻松阅读前两行,计算数据类型并将您首选的数据类型映射到它上面,并在读取整个文件时将其用作数据类型参数:

示例:

import pandas as pd
df = pd.read_csv(filePath, delimiter=delimiter, nrows=2, low_memory=True, memory_map=True,engine='c')
mapdtypes = {'int64': 'int8', 'float64': 'float32'}
dtypes = list(df.dtypes.apply(str).replace(mapdtypes))
dtype = {key: value for (key, value) in enumerate(dtypes)}
df = pd.read_csv(filePath, delimiter=delimiter, memory_map=True,engine='c', low_memory=True, dtype=dtype)

关于Python:Pandas 读取 csv:读取 csv 时向下转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812001/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com