-1

我有以下文件:

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 列是日期 (dd/mm/yyyy),第 2 列是小时,第 3 列是温度。

如何使用 pyhton 合并第 1 列和第 2 列以创建新列 dd/mm/yyyy hh:00?

我正在使用 .csv 文件和 pandas 模块。

4

2 回答 2

1

使用 csv OR pandas 库(使用 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
于 2019-03-10T16:00:15.407 回答
0

遍历输入文件中的行,并使用附加列输出

with open('filename.csv') as fin:
    for inputLine in fin:
        x = inputLine.split(',')
        outputLine = inputLine + ',' + str(x[0]) + ' ' + str(x[1]) + ':00'
于 2019-03-10T15:51:22.933 回答