python如何读取数据保存为新格式_python,初学者应用实例:读取文件中的数据,将将北京时间转换成世界时间,再保存成新的CSV格式文件...
數據格式轉換是科研工作中經常需要完成的任務。本程序實現了這個功能。將文本文件“TableS1.dat”中的數據讀取,原文件格式為:
No Date Time Mag Dis
11999/07/2505:28:39.580
21999/07/2523:06:31.940
31999/08/0601:54:40.6001.012.5
41999/08/1708:01:14.260
51999/08/1923:15:47.3200.71
該文件數據間隔為空,但空格數不一致,有時還用的是制表符,因此程序開關一段代碼(已經注釋掉)實現的是將這個文本文件讀取并轉存為標準的CSV文件。
然后再讀取CSV文件,完成北京時間轉換為世界時,并另存為“UTC_Table.csv”。這段代碼雖然不長,但實現了數據讀取,處理,時間格式處理等功能,具有很好的參考價值。
完整代碼如下:
import time
import pandas as pds
# 將原始數據文件TableS1.dat轉成標準的CSV文件。注意原始文件中輸入數據的空格不規范,空格數不相同,有的還是制表符。
# with open('newTableS1.csv', 'w') as f1:
# with open('TableS1.dat', 'r') as f2:
# for line in f2:
# old_line = line.strip().split('\t')
# new_line = [i for i in old_line if i != '']
# print(new_line)
# new_line = ','.join(new_line)
# print(new_line)
# f1.write(new_line + '\n')
data = pds.read_csv('newTableS1.csv')
btc_date = data['Date']
btc_time = data['Time']
with open('UTC_table.csv', 'w') as f:
f.write('No,Date,Time,Mag,Dis' + '\n')
for i in range(len(btc_date)):
hr, min, sec = btc_time[i].strip().split(':')
utc = btc_date[i] + '-' + hr
utc_str = time.strptime(utc, '%Y/%m/%d-%H') # 將當前時間字符串轉換為結構化時間,注意,這里只把小時加進來,分和秒不影響北京時轉世界時
utc_timestamp = time.mktime(utc_str) #將結構化時間轉換為時間戳
new_date = time.gmtime(utc_timestamp) # 將時間戳轉換成世界時結構化時間
utc_date = '/'.join([str(new_date.tm_year), str(new_date.tm_mon), str(new_date.tm_mday)])
utc_time = ':'.join([str(new_date.tm_hour), min, sec])
new_line = [str(data['No'].loc[i]), utc_date, utc_time, str(data['Mag'].loc[i]), str(data['Dis'].loc[i])]
new_line = [i for i in new_line if str(i) != 'nan'] # 刪除空元素
line = ','.join(new_line)
print(line)
f.write(line + '\n')
總結
以上是生活随笔為你收集整理的python如何读取数据保存为新格式_python,初学者应用实例:读取文件中的数据,将将北京时间转换成世界时间,再保存成新的CSV格式文件...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何参与中国移动“1 元抢购苹果新品预定
- 下一篇: python集合用法_Python 集合