[英]Combine date column and time column into index in pandas data frame
我在CSV文件中有一個30秒間隔的時間序列數據,格式如下:
20120105, 080000, 1
20120105, 080030, 2
20120105, 080100, 3
20120105, 080130, 4
20120105, 080200, 5
如何使用這兩種不同的索引方案將其讀入pandas數據框:
1,將日期和時間合並為一個日期時間索引
2,使用date作為主索引,使用time作為multiindex數據幀中的輔助索引
這兩種方案的利弊是什么? 一般比另一個更優選嗎? 在我的情況下,我想看看時間分析,但我不完全確定哪個方案對我的目的更方便。 提前致謝。
將日期和時間合並為單個日期時間索引
df = pd.read_csv(io.BytesIO(text), parse_dates = [[0,1]], header = None, index_col = 0) print(df) # 2 # 0_1 # 2012-01-05 08:00:00 1 # 2012-01-05 08:00:30 2 # 2012-01-05 08:01:00 3 # 2012-01-05 08:01:30 4 # 2012-01-05 08:02:00 5
使用date作為主索引,將time作為multiindex數據幀中的二級索引
df2 = pd.read_csv(io.BytesIO(text), parse_dates = True, header = None, index_col = [0,1]) print(df2) # 2 # 0 1 # 2012-01-05 80000 1 # 80030 2 # 80100 3 # 80130 4 # 80200 5
我天真的傾向是更喜歡單指數而不是多指數。
但是,我對Pandas不是很有經驗,在進行時間分析時使用多索引可能會有一些優勢。
我會嘗試兩種方式編寫一些典型的計算方法,然后根據編碼的簡易性,可讀性和性能來看看哪一個我更喜歡。
這是我的設置,以產生上述結果。
import io
import pandas as pd
text = '''\
20120105, 080000, 1
20120105, 080030, 2
20120105, 080100, 3
20120105, 080130, 4
20120105, 080200, 5'''
你當然可以使用
pd.read_csv(filename, ...)
代替
pd.read_csv(io.BytesIO(text), ...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.