Python: объединить час в столбец дд / мм / гггг в файле данных - PullRequest
0 голосов
/ 10 марта 2019

У меня есть следующий файл:

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

Если в столбце 1 указана дата (дд / мм / гггг), в столбце 2 - час, а в столбце 3 - температура.

Как объединить столбцы 1 и 2, чтобы создать новый столбец дд / мм / гггг чч: 00, используя pyhton?

Я использую файл .csv и модуль pandas.

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Использование csv ИЛИ библиотеки панд (протестировано с использованием python 3.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
0 голосов
/ 10 марта 2019

Перебирать строки во входном файле и выводить с добавленным столбцом

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