将 pandas 单元格中的多维 numpy 数组保存到 Excel 中

问题描述 投票:0回答:1

我想将存储在 Pandas 单元格中的多维 numpy 数组保存到 Excel 文件中。但 Excel 将数组转换为字符串。我的熊猫数据框看起来像这样:

df_data
        relationalAtt
0   [[0.87159, 0.88042, 0.88042, 0.81962, 0.81962,...
1   [[2.7428, 2.4265, 2.4265, 2.3447, 2.3447, 2.33...
2   [[0.9799, 1.0028, 1.0028, 0.81538, 0.81538, 1....
3   [[0.96582, 1.1887, 1.1887, 1.1342, 1.1342, 1.0...
4   [[-1.8861, -1.4923, -1.4923, -1.8474, -1.8474,...
... ...
270 [[0.66787, 0.5834, 0.53637, 0.53637, 0.64349, ...
271 [[1.6233, 1.5928, 1.5977, 1.4355, 1.4355, 1.62...
272 [[1.2729, 1.3988, 1.3772, 1.3143, 1.3143, 1.40...
273 [[1.9266, 1.7625, 1.7722, 1.7722, 2.0019, 2.05...
274 [[1.6942, 1.5156, 1.6347, 1.7582, 1.7582, 1.60...
275 rows × 1 columns

我们可以更深入地了解数组:

df_data[df_data.columns[0]][0]

array([[ 0.87159,  0.88042,  0.88042, ..., -0.95541, -0.64258, -0.64258],
   [ 0.7453 ,  0.82313,  0.82313, ...,  2.1161 ,  2.2079 ,  2.2079 ],
   [ 1.1533 ,  1.0887 ,  1.0887 , ...,  1.045  ,  1.286  ,  1.286  ],
   ...,

到目前为止一切顺利。当我尝试将 Pandas Dataframe 保存到 Excel 中时,出现了问题。 Excel 将数组单元格保存为字符串:

n=name.split("/")[-1]
name=n.split(".")[0]
path= "../Random_Data/"+name+ ".csv" 
df_data.to_csv(path)

df=pd.read_csv(path,index_col=0)
df[df.columns[0]][0]

'[[ 0.87159  0.88042  0.88042 ... -0.95541 -0.64258 -0.64258]\n [ 0.7453   0.82313  0.82313 ...  2.1161   2.2079   2.2079 ]\n [ 1.1533   1.0887   1.0887  ...  1.045    1.286    1.286  ]\n ...\n [ 0.88441  0.85476  0.85476 ... -0.40933 -0.44269 -0.44269]\n [ 1.137    0.63292  0.63292 ... -2.5608  -2.3481  -2.3481 ]\n [ 1.2429   1.4795   1.4795  ... -1.0315  -1.0025  -1.0025 ]]'
    

你知道如何保留原始数据类型吗?或者您知道另一种更适合这里的数据存储格式吗?或者有没有办法将字符串转换回数组?感谢您的帮助!

尝试另存为.arff 或 Excel。两者都不起作用。也无法将字符串转换回数组。每种方法都会有帮助!

python arrays pandas multidimensional-array export-to-csv
1个回答
0
投票

只需将其保存为泡菜即可。这将保留您的数据框。

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_pickle.html

path= "../Random_Data/"+name+ ".pck" 

df_data.to_pickle(path)
© www.soinside.com 2019 - 2024. All rights reserved.