python - 如何将多个多维数组保存到一个 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 文件,其中包含X
2 个单独列中的值(如预期的那样)。
现在,如果我想将两者都保存X
在同一个 CSV 文件的单独列中,y
并且如果我想给出名称、、、X1
以及我需要更改代码的内容?X2
y1
y2
我预期的 CSV 是函数生成的X
和的值。从函数中,我们得到二维和二维。因此,CSV 应该包含 4 列(例如,X1、X2、y1、y2)。y
make_regression
X
y
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
解决方案
你可以使用熊猫concat
。我不确定你想要的名字X1
,X2
等等。
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
推荐阅读
- unreal-engine4 - UPrimitiveComponent 的 GetMass 和 CalculateMass 有什么区别?
- android - NullPointerException 错误尝试在空对象引用上调用虚拟方法错误
- c - 段错误(核心转储)与 c
- java - 从leakCanary 报告中如何理解哪些对象是垃圾回收的,哪些不是?
- internet-explorer - Selenide+Spock,每页一个类 - 导航到一个页面似乎打开了一个新窗口
- gcc - 为什么qmake在链接时将-Wl,O1传递给gcc,它会损害LTO吗?
- windows - 在 Windows 10 中将很多文件重命名为 md5 最有效
- python - python中matirx向量运算示例之后的奇怪输出错误
- sql - 在事务中(在 Postgres 中)在顺序 INSERT 语句中引用 RETURN 值
- php - 在 react 中使用 Fetch,需要用户名密码才能访问数据库