說我有一個DF如下:熊貓:調用df.loc []選自pd.datetime的索引
a=pd.DataFrame([[1,3]]*3,columns=['a','b'],index=['5/4/2017','5/6/2017','5/8/2017'])
a.index=pd.to_datetime(a.index,format='%m/%d/%Y')
類型的df.index的現在是
<class 'pandas.core.indexes.datetimes.DatetimeIndex'>
當我們嘗試根據類型pd.datetime的索引調用一行數據時,可以根據日期的字符串格式調用該值,而不是輸入日期時間對象。在上述情況下,如果我想呼籲2017年5月4日的數據行,我可以簡單地輸入的日期字符串格式的.loc如下:
print(a.loc['5/4/2017'])
而且我們也不需要輸入DateTime對象
print(a.loc[pd.datetime(2017,5,4)]
我的問題是,要求根據日期的字符串格式從.loc僞數據時,如何大熊貓知道我的日期字符串格式如下MDY或DMY或其他組合?在這種情況下,我使用了a.loc ['5/4/2017']併成功返回值。爲什麼它不認爲這可能意味着4月5日這不在這個指數內?
謝謝你的深思熟慮的答案。我懷疑如果使用的字符串格式取決於Windows/OS的語言/日期設置? – user7786493
來自[IO工具文檔](http://pandas.pydata.org/pandas-docs/version/0.20/io.html): 雖然美國的日期格式通常是MM/DD/YYYY,但許多國際格式使用改爲DD/MM/YYYY。爲了方便起見,提供了dayfirst關鍵字。 'dayfirst'關鍵字可用於在解析.csv文件時正確讀取國際日期,但我不確定您是否可以從'.loc'設置'dayfirst'。找到答案的最佳方法可能是在源代碼中尋找答案,但可能會出現這樣的情況:.loc只能始終以'dayfirst = False'運行。 –