【问题标题】:Python 2.7 CSV writer: Writing to a CSV with 1 column and the rest of the data in rowsPython 2.7 CSV 编写器:写入 1 列的 CSV 和行中的其余数据
【发布时间】:2016-07-29 02:10:36
【问题描述】:

所以我试图将一些代码的结果写入一个输出 csv 文件,该文件在第一列中包含标签,然后按行写入数据。例如。

RXN_ID | ID_1 | ID_2 | ID_3 |
标签1 |数据1 |数据2 |数据3 |
标签2 |数据1 |数据2 |数据3 |
标签3 |数据1 |数据2 |数据3 |
标签4 |数据1 |数据2 |数据3 |

目前我正在使用

VarWriteList = [RxnIDS,RxnXjstar,RxnAjstar]
with open(FileName,'wb') as csvfile:

    EfactorWriter = csv.writer(csvfile, dialect='excel', delimiter=',')
    for var in VarWriteList:    
        EfactorWriter.writerow(var[0,:])

vars 是包含我要写入的数字的 numpy 数组。我在前面的代码中将标签放在一个单独的列表中,称为Params

有人知道我如何将一列写入 CSV,然后在其旁边写入行(例如,索引以从第二列而不是第一列开始写入)?

【问题讨论】:

    标签: python-2.7 csv numpy


    【解决方案1】:

    对于您的应用程序,最好使用 pandas

    import pandas as pd
    # generate your panda dataframe accordingly.
    # I am just brutally making it here for illustration
    df = pd.DataFrame({'rxn_id':['label1', 'label2', 'label3', 'label4'], 'id1':[1,2,3,4], 'id2':[5,6,7,8], 'id3':[9,10,11,12]})
    

    df 自动将数据帧索引作为其第一列。

    df
       rxn_id  id1  id2  id3
    0  label1    1    5    9
    1  label2    2    6   10
    2  label3    3    7   11
    3  label4    4    8   12
    

    但是您可以选择不使用 index=False 保存它,这正是您想要的。

    df.to_csv('out.csv', index=False, sep='|') # This will write to file out.csv
    

    【讨论】:

    • 感谢您的回答!我将如何根据代码前一部分中列表的输入将其更改为具有可变标题输入?除了可变标题输入之外,它还需要一个可变标签选择,以对应前面代码中的不同数据集?
    • 当您生成 pandas 数据框时,您可以将“rxn_id”、“id1”、...替换为从输入中读取的其他值。 {'rxn_id':['label1', 'label2', 'label3', 'label4'], 'id1':[1,2,3,4], 'id2':[5,6,7,8] , 'id3':[9,10,11,12]} 请通过评论一次询问一件事。通过评论回复并不容易。
    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多