簡體   English   中英

通過更改標題將.csv文件中的單個列拆分為多個列,並使用Python 2將其保存到新的.csv文件中

[英]Splitting a single column in a .csv file into multiple columns with changes in headings and saving it in a new .csv file using Python 2

我在C:\\ Users \\ Win-8.1 \\ Desktop \\ delhi中有一個名為selected.csv的.csv文件,其中包含3列:

 Entries        |       Date (LT)    | AQI | Raw Conc.
 First Entry        01-01-2016 00:00   316     322
 Last Entry         31-12-2016 24:00   316     264

現在,我想做的是:

i)將數據從此.csv文件復制到新的空.csv文件中,該文件名為我在同一文件夾中創建的corrected.csv

所需的輸出應如下所示:

  Entries     |          Date    |    Month    |   Hour   | AQI | Raw Conc.
 First Entry              1         January       12 AM    316     322
 Last Entry              31        December       11 PM    316     264
import csv
from datetime import datetime

output_file = open('C:\Users\Win-8.1\Desktop\delhi\corrected.csv', 'w')
fieldnames = ['Entries', 'Date', 'Month' , 'Hour', 'AQI' , 'Raw Conc']
writer = csv.DictWriter(output_file, fieldnames=fieldnames)
writer.writeheader()

with open('C:\Users\Win-8.1\Desktop\delhi\selected.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        output_row = {}
        output_row['Entries'] = row['Entries']
        change_date = datetime.strptime(row['Date (LT)'], '%d-%m-%Y %H:%M')
        output_row['Date'] = change_date.strftime('%d')
        output_row['Month'] = change_date.strftime('%B')
        output_row['Hour'] = change_date.strftime('%I %p')
        output_row['AQI'] = row['AQI']
        output_row['Raw Conc'] = row['Raw Conc']
        writer.writerow(output_row)

output_file.close()

注意:我尚未測試代碼,因此如果您遇到任何錯誤,請告訴我。

這是解決您問題的方法,但我會建議您閱讀更多有關Python CSVPython Datetime庫的信息。這將對您將來的問題有所幫助。

發布的問題的工作代碼如下:

import csv
from datetime import datetime

output_file = open(r"C:\Users\Win-8.1\Desktop\delhi\corrected.csv", "wb")
fieldnames = ['Date', 'Month' , 'Year', 'Hour', 'AQI' , 'Raw Conc.']
writer = csv.DictWriter(output_file, fieldnames=fieldnames)
writer.writeheader()

with open(r"C:\Users\Win-8.1\Desktop\delhi\selected.csv") as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        output_row = {}
        change_date = datetime.strptime(row['Date (LT)'], '%d-%m-%Y %H:%M')
        output_row['Date'] = change_date.strftime('%d')
        output_row['Month'] = change_date.strftime('%B')
        output_row['Year'] = change_date.strftime('%Y')
        output_row['Hour'] = change_date.strftime('%I %p')
        output_row['AQI'] = row['AQI']
        output_row['Raw Conc.'] = row['Raw Conc.']
        writer.writerow(output_row)

output_file.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM