Python中追加pandas分块读取的CSV数据格式异常原因及修复方案
问题原因
你存入data列表的元素并非Python原生列表,而是NumPy数组对象。pandas的DataFrame.values属性返回的是NumPy ndarray类型,打印这类对象时会自动输出array()标识和dtype类型说明,因此会出现你观察到的格式差异。
修复方案
你只需要在把元素加入列表前,将NumPy数组转为Python原生列表即可,以下提供两种实现写法:
写法1:适配原有逐行追加逻辑
import pandas as pd chunksize = 10 data = [] for chunk in pd.read_csv("testData.csv", chunksize=chunksize): for value in chunk.values: data.append(value.tolist()) print(data)
写法2:更高效的批量处理(适合大文件场景)
省去内层循环,直接将整个分块转为嵌套列表后批量加入data,性能更高:
import pandas as pd chunksize = 10 data = [] for chunk in pd.read_csv("testData.csv", chunksize=chunksize): data.extend(chunk.values.tolist()) print(data)
补充说明:如果你后续需要对元素做数值计算,不需要打印为指定格式,保留NumPy数组类型的运算效率更高,仅当需要输出符合要求的列表格式时再转换即可。
内容的提问来源于stack exchange,提问作者gmando
相关产品推荐
相关产品推荐

