首页 > 解决方案 > 如何将多个多维数组保存到一个 CSV 文件中?

问题描述

我可以使用以下代码将多个一维数组保存到 CSV 文件

my_df = pd.DataFrame({"name1" : X, "name2" : y})

此外,我可以将一个多维数组保存到 CSV 文件中。

X, y = make_regression(n_samples=10, n_features=2, n_informative=2, n_targets=1, random_state=1, noise=0.5)
my_df = pd.DataFrame(X)
my_df.to_csv('test_data.csv', index=False, header=True)

在这里,X是一个多维数组,我得到一个 CSV 文件,其中包含X2 个单独列中的值(如预期的那样)。

现在,如果我想将两者都保存X在同一个 CSV 文件的单独列中,y并且如果我想给出名称、、、X1以及我需要更改代码的内容?X2y1y2

我预期的 CSV 是函数生成的X和的值。从函数中,我们得到二维和二维。因此,CSV 应该包含 4 列(例如,X1、X2、y1、y2)。ymake_regressionXy

X (shape: (10, 2)) 的值来自 make_regression 函数

[[ 1.62434536 -0.61175641]
 [ 0.04221375  0.58281521]
 [-0.52817175 -1.07296862]
 [ 1.74481176 -0.7612069 ]
 [ 1.13376944 -1.09989127]
 [ 0.86540763 -2.3015387 ]
 [ 1.46210794 -2.06014071]
 [ 0.3190391  -0.24937038]
 [-0.3224172  -0.38405435]
 [-0.17242821 -0.87785842]]

y的值(形状:(10,2))

[[ 7.08380317e+01 -1.49989469e-01]
[ 4.25574119e+01  5.08213909e+01]
[-1.10263835e+02 -1.06685245e+02]
[ 6.81167780e+01 -8.67912040e+00]
[ 3.76517652e+00 -5.56565286e+01]
[-9.82592158e+01 -1.64522187e+02]
[-4.06045719e+01 -1.25819174e+02]
[ 4.61069914e+00 -1.11695124e+01]
[-4.92313307e+01 -4.21097213e+01]
[-7.22908927e+01 -7.91525111e+01]]

预期输出


X1             X2                    y1     y2
 1.62434536 second column fo the X
 0.04221375  
-0.52817175 
 1.74481176 
 1.13376944
 0.86540763 
 1.46210794 
 0.3190391  
-0.3224172 
-0.17242821

标签: pythonpython-3.xpandasnumpy

解决方案


你可以使用熊猫concat。我不确定你想要的名字X1X2等等。

    X, y = make_regression(n_samples=10, n_features=2, n_informative=2, n_targets=2, random_state=1, noise=0.5)
    print(X, y)
    full_df = pd.concat([pd.DataFrame(X),pd.DataFrame(y)],axis=1, ignore_index=True)
    full_df.to_csv('test_data.csv', index=False, header=True)
    print(full_df)

X 和 y 来自函数

[[ 1.62434536 -0.61175641]
 [ 0.04221375  0.58281521]
 [-0.52817175 -1.07296862]
 [ 1.74481176 -0.7612069 ]
 [ 1.13376944 -1.09989127]
 [ 0.86540763 -2.3015387 ]
 [ 1.46210794 -2.06014071]
 [ 0.3190391  -0.24937038]
 [-0.3224172  -0.38405435]
 [-0.17242821 -0.87785842]] [[ 7.08380317e+01 -1.49989469e-01]
 [ 4.25574119e+01  5.08213909e+01]
 [-1.10263835e+02 -1.06685245e+02]
 [ 6.81167780e+01 -8.67912040e+00]
 [ 3.76517652e+00 -5.56565286e+01]
 [-9.82592158e+01 -1.64522187e+02]
 [-4.06045719e+01 -1.25819174e+02]
 [ 4.61069914e+00 -1.11695124e+01]
 [-4.92313307e+01 -4.21097213e+01]
 [-7.22908927e+01 -7.91525111e+01]]

输出后concat

          0         1           2           3
0  1.624345 -0.611756   70.838032   -0.149989
1  0.042214  0.582815   42.557412   50.821391
2 -0.528172 -1.072969 -110.263835 -106.685245
3  1.744812 -0.761207   68.116778   -8.679120
4  1.133769 -1.099891    3.765177  -55.656529
5  0.865408 -2.301539  -98.259216 -164.522187
6  1.462108 -2.060141  -40.604572 -125.819174
7  0.319039 -0.249370    4.610699  -11.169512
8 -0.322417 -0.384054  -49.231331  -42.109721
9 -0.172428 -0.877858  -72.290893  -79.152511

推荐阅读