1. csv文件內容如下:
2.使用相對路徑讀取csv文件
tick = pd.DataFrame(pd.read_csv(os.path.join(BASE_DIR, 'CsvFile/tick.SGE.csv'),
keep_default_na=False,
encoding='utf-8'
))
3. 根據日期和時間規則、獲取相同數據的最後一條,獲得過濾後的csv文件內容
以第2、3行數據爲例,該方法執行後只會存在上圖行號爲3的數據,不會存在行號爲2的數據 ,其他行類似
tick.drop_duplicates(['TradingDay', 'UpdateTime'], keep='last', inplace=True)
4. 過濾出指定日期範圍內的數據:
tick_New = tick[(tick['TradingDay'].astype(int) >= int(firstDate)) & (tick['TradingDay'].astype(int) <= int(lastDate))]
firstDate和lastDate都是20190101這樣的格式,按需修改
5. 合併列和刪除列,將TradingDay和UpdateTime合併,並放置到TradingDay列中,刪除原有的UpdateTime列
#合併列
tick_New ['TradingDay'] = list(tick_New['TradingDay'].map(str) + " " + tick_New['UpdateTime'].map(str))
#刪除列
tick_New.pop('UpdateTime')
6. 移動列的位置(列的下標從0開始),下面將Volume移動到第二列,這裏使用移除添加的方式,性能暫不考慮
pd_temp = tick_New.pop('Volume')
tick_New.insert(2, 'Volume', dp_temp)
7. 將pd轉爲數組
tick_New.values.tolist()