如何使用Pandas将未知尺寸的N×M数组保存为CSV文件
不需要循环调用pd.append,直接将完整的Numpy数组传入DataFrame构造函数即可完成转换,再调用to_csv方法保存文件,适配任意尺寸的二维数组。
常规内存足够场景(代码最简)
import numpy as np import pandas as pd N,M = np.random.randint(10,100, size = 2) A = np.random.randint(10, size = (N,M)) # 生成列名,用列表推导式替代for循环更简洁 columns = [f"column_{i}" for i in range(M)] # 直接从二维数组构造DataFrame,指定列名 df = pd.DataFrame(A, columns=columns) # 保存为csv文件,index=False表示不输出默认行索引,不需要可以删除该参数 df.to_csv("output.csv", index=False, encoding="utf-8-sig")
超大数组分块写入场景(内存不足时使用)
如果数组尺寸过大无法一次性加载进内存,可以分批次写入文件:
import numpy as np import pandas as pd N,M = np.random.randint(10,100, size = 2) A = np.random.randint(10, size = (N,M)) columns = [f"column_{i}" for i in range(M)] # 可根据实际内存调整单块写入的行数 chunk_size = 1000 # 先写入表头 pd.DataFrame(columns=columns).to_csv("large_output.csv", index=False, encoding="utf-8-sig") # 逐块追加写入数据 for start_idx in range(0, N, chunk_size): end_idx = min(start_idx + chunk_size, N) chunk_data = A[start_idx:end_idx] pd.DataFrame(chunk_data, columns=columns).to_csv( "large_output.csv", mode="a", # 追加模式 header=False, # 不重复写入表头 index=False, encoding="utf-8-sig" )
内容的提问来源于stack exchange,提问作者Siderius
相关产品推荐
相关产品推荐

