Pandas過濾、合併、移動、獲取、刪除CSV文件的列內容

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()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章