[英]Turning a single column of csv data into a new csv file with multiple columns
[英]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 CSV和Python 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.