【问题标题】:Exporting list of an array and a list to csv file in python在python中将数组列表和列表导出到csv文件
【发布时间】:2019-02-04 04:27:54
【问题描述】:

我找到了几个帮助用户在 python 中将列表写入 csv 文件的链接。但是,我找不到我正在使用的特定列表格式的解决方案。我有一个列表,其中每个索引都采用以下形式:[array([x1,x2,x3,x4]),[x5,x6]] 我的列表有数千个索引。 我想将此列表导出到 csv 文件,其中 x1 是第一列,x2 是第二列,直到 x6 作为第六列。 我已经尝试过如下熊猫库。但是,这会将第一列中的数组和列表转储到另一列,因此只提供两列而不是我想要的六列。

td_df = pd.DataFrame(training_data_arr)
td_df.to_csv('DataSet.csv', header=False, index=False)

此外,我不希望我的数据在每次运行代码时都被覆盖。相反,我希望我的数据从 csv 文件中的下一个空行写入

编辑:我的数据看起来像

[[[0.004, 0.336, 0.009, -0.212],[1,0]], [[0.24, 0.66, 0.09, -0.2],[1,0]], [[-0.11, 0.16, 0.77, -0.2],[0,1]]...]

【问题讨论】:

  • 你能显示你在training_data_arr中的实际数据吗?
  • 编辑了我原来的帖子

标签: python pandas list csv export-to-csv


【解决方案1】:

要附加到 csv 文件,请自己打开文件并将其传递给to_csv,例如:

with open('CartPoleDataSet.csv', 'a') as f:
    td_df.to_csv(f, header=False, index=False)

听起来您只是想在导出数据之前将其展平。

一种扁平化方法是:

In []
pd.DataFrame(td_df.sum(axis=1).values.tolist())

Out[]:
      0     1     2      3  4  5
0 0.004 0.336 0.009 -0.212  1  0
1 0.240 0.660 0.090 -0.200  1  0

【讨论】:

  • 问题已解决。您能解释一下pd.DataFrame(td_df.sum(axis=1).values.tolist()) 的工作原理吗? td_df.sum(axis=1) 不应该足够吗?为什么需要 values 和 tolist()?
  • 这会将列 (sum(axis=1)) 和生成的列表 Series 组合成一个列表列表 (values.tolist()),该列表将被重组为 DataFrame
猜你喜欢
  • 1970-01-01
  • 2017-07-20
  • 2020-01-09
  • 2015-02-19
  • 2019-11-09
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 1970-01-01
相关资源
最近更新 更多