如何将异构numpy数组导出为CSV文件及报错解决
解决不同长度NumPy数组导出规整CSV的问题
原代码的问题分析
- 直接对numpy数组列表调用
pd.DataFrame.transpose()是错误的,该方法仅适用于DataFrame对象,列表没有dtypes属性,因此触发第一个报错。 - 不同长度的numpy数组无法直接拼接成二维数组(numpy要求所有子数组长度一致),导致后续创建DataFrame时形状不匹配,触发第二个报错。
- 最后存在变量名错误:定义的DataFrame是
df2,但导出时使用了未定义的df。
正确实现代码
import numpy as np import pandas as pd # 定义不同长度的numpy数组 T11 = np.array([1, 2, 3]) T21 = np.array([4, 5, 6]) T31 = np.array([7, 8, 9, 10]) T41 = np.array([11, 12, 13, 14]) T51 = np.array([15]) # 将每个数组转为Series,pandas自动用NaN补全短数组的空缺 series_list = [pd.Series(arr) for arr in [T11, T21, T31, T41, T51]] # 按列合并Series为DataFrame,设置列名 df = pd.concat(series_list, axis=1) df.columns = ['a', 'b', 'c', 'd', 'e'] # 导出CSV,空值自动转为空字符串 df.to_csv('file.csv', index=False, header=False)
效果说明
运行后导出的file.csv内容如下,完全匹配你期望的格式:
1,4,7,11,15 2,5,8,12, 3,6,9,13, ,,10,14,
内容的提问来源于stack exchange,提问作者felipe
相关产品推荐
相关产品推荐

