代码之家  ›  专栏  ›  技术社区  ›  Saulo Carvalho

Python:将小时连接到数据文件的dd/mm/yyyy列中

  •  -1
  • Saulo Carvalho  · 技术社区  · 7 年前

    我有以下文件:

    01/03/2019,23,24.0
    01/03/2019,22,24.5
    01/03/2019,21,25.9
    01/03/2019,20,26.4
    01/03/2019,19,26.6
    01/03/2019,18,25.9
    

    如何使用pyton合并第1列和第2列以生成新列dd/mm/yyyy hh:00?

    我使用的是.csv文件和pandas模块。

    2 回复  |  直到 7 年前
        1
  •  1
  •   balderman    7 年前

    使用csv或pandas库(使用python3.7测试)

    import csv
    import pandas as pd
    
    use_pandas = True
    
    if use_pandas:
        df = pd.read_csv('55089401.csv', header=None)
        df[3] = df[0].map(str) + ' ' + df[1].map(str) + ':00'
        del df[0]
        del df[1]
        new_order = [1, 0]
        df = df[df.columns[new_order]]
        print(df)
    else:
        out_data = []
        with open('55089401.csv', 'r') as f_in:
            reader = csv.reader(f_in)
            for row in reader:
                out_data.append(['{} {}:00'.format(row[0], row[1]), row[2]])
        with open('55089401_out.csv', 'w', newline='') as f_out:
            writer = csv.writer(f_out)
            writer.writerows(out_data)
    

    熊猫产量

    0  01/03/2019 23:00  24.0
    1  01/03/2019 22:00  24.5
    2  01/03/2019 21:00  25.9
    3  01/03/2019 20:00  26.4
    4  01/03/2019 19:00  26.6
    5  01/03/2019 18:00  25.9
    

    01/03/2019,23,24.0
    01/03/2019,22,24.5
    01/03/2019,21,25.9
    01/03/2019,20,26.4
    01/03/2019,19,26.6
    01/03/2019,18,25.9
    

    输出文件(csv)

    01/03/2019 23:00,24.0
    01/03/2019 22:00,24.5
    01/03/2019 21:00,25.9
    01/03/2019 20:00,26.4
    01/03/2019 19:00,26.6
    01/03/2019 18:00,25.9
    
        2
  •  0
  •   Jordan Singer    7 年前

    迭代输入文件中的行,并输出附加的列

    with open('filename.csv') as fin:
        for inputLine in fin:
            x = inputLine.split(',')
            outputLine = inputLine + ',' + str(x[0]) + ' ' + str(x[1]) + ':00'
    
    推荐文章