【问题标题】:Save different array into one csv file将不同的数组保存到一个 csv 文件中
【发布时间】:2021-09-17 04:26:00
【问题描述】:

我有一个 scores 数组,其值类似于

[[0.66372503]
 [0.64839758]
 [0.63307013]]

然后,我有一个 scores2 数组,其值类似于

[[0.65367322]
 [0.63598164]
 [0.62295124]]

如何将它们组合并保存到 csv 中

         scores         scores2              
1     0.66372503     0.65367322
2     0.64839758     0.63598164
3     0.63307013     0.62295124

?谢谢

【问题讨论】:

  • 当你说“我有一个...的数组”时,那是一个python数组吗?一个 NumPy 数组?还是熊猫数据框?请包含创建数据的代码,以便我们复制/粘贴它。

标签: arrays pandas csv


【解决方案1】:

试试这个:

scores = list(scores)
scores2 = list(scores2)
d = [scores, scores2]
export_data = zip_longest(*d, fillvalue = '')
with open('<your_file_name>.csv', 'w', encoding="ISO-8859-1", newline='') as myfile:
        wr = csv.writer(myfile)
        wr.writerow(("scores", "scores2"))
        wr.writerows(export_data)
    myfile.close()

【讨论】:

    【解决方案2】:
    df= pd.DataFrame(data={'scores': [0.66372503, 0.64839758, 0.63307013],
                           'scores2':[0.65367322, 0.63598164, 0.62295124]})
    df.to_csv('filename.csv', index=False)
    

    如果你有二维数组,你可以在将数组传递给 pandas df 之前使用 numpy flatten 方法:

    scores= [[0.66372503], [0.64839758], [0.63307013]]
    scores2=[[0.65367322], [0.63598164], [0.62295124]]
    
    df= pd.DataFrame(data={'scores': np.array(scores).flatten(),
                           'scores2':np.array(scores2).flatten()})
    
    df.to_csv('filename.csv', index=False)
    

    【讨论】:

    • 你可以将二维列表作为列传递吗?
    • 是的,你可以,但是每个值都将是一个具有单个值的列表,我认为这不是你想要的。
    【解决方案3】:

    如果你有基本的 python 数组,你可以这样做:

    n = len(scores)
    for x in range(0,n):
        key = x + 1
        newline = key + "\t" + scores[x] + "\t" + scores2[x] + "\n"
        outf.write(newline)
    

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      • 2021-09-13
      相关资源
      最近更新 更多