【问题标题】:Formatting a csv file I'm sorting格式化我正在排序的 csv 文件
【发布时间】:2019-03-15 15:10:58
【问题描述】:

我目前正在排序一个 csv 文件。就我的输出而言,它是正确的,但格式不正确。以下是我正在排序的文件

这是我排序后的输出(我将在图像后面包含代码)

显然我遇到了分隔符问题,但这是我的代码:

with open(out_file, 'r') as unsort:##Opens OMI Data
    with open(Pandora_Sorted,'w') as sort:##Opens file to write to
        for line in unsort:
            if "Datetime" in line:##Searches lines
                writer=csv.writer(sort, delimiter = ',')
                writer.writerow(headers)##Writes header
            elif "T13" in line:
                writer=csv.writer(sort)
                writer.writerow(line)##Writes to output file

【问题讨论】:

    标签: python pandas csv sorting format


    【解决方案1】:

    我认为将 csv 文件读入 pandas 数据框并排序更容易,请查看以下示例代码。

    import pandas as pd
    df = pd.read_csv(input_file)
    df.sort_values(by = ['Datetime'], inplace = True)
    df.to_csv(output_file)
    

    【讨论】:

    • 谢谢,我试试看!
    【解决方案2】:

    您是否需要明确说明作者的分隔符?

    在您的elif 的第二行:

    elif "T13" in line:
        writer=csv.writer(sort, delimiter = ',')
        writer.writerow(line)  # Writes to output file
    

    【讨论】:

      【解决方案3】:

      对于提供的代码,由于以下行,标题也将具有类似于其他行的格式:

      writer=csv.writer(sort, delimiter = ',')
      

      使用pandas 下面可以用于按列列表升序排序,list_of_columns

      import csv
      import pandas as pd 
      
      input_csv = pd.read_csv(out_file, sep=',')
      input_csv.sort_values(by=list_of_columns, ascending=True)
      input_csv.to_csv(Pandora_Sorted, sep=',')
      

      例如list_of_columns 可能是

      list_of_columns = ['Datetime', 'JulianDate', 'repetition']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-10
        • 1970-01-01
        • 2021-10-14
        • 2018-02-12
        • 2021-11-26
        • 1970-01-01
        • 1970-01-01
        • 2017-04-19
        相关资源
        最近更新 更多