我有以下形式的 CSV 檔案:
| 日期 | 資料 1 | 資料2 | ... | 資料 n |
|---|---|---|---|---|
| 2010-01-02 | 123 | 222 | ... | 223 |
| 2010-01-03 | 124 | 232 | ... | 233 |
| ... | ... | ... | ... | ... |
| 2021-11-06 | 424 | 332 | ... | 133 |
我想將此表的所有行讀入 Pandas 資料框中,其中列日期小于給定日期,例如 2010-01-05。
我剛剛嘗試了以下代碼:
df = pd.read_csv('test.csv')
df["Date"] = pd.to_datetime(daten["Date"], format="%Y-%m-%d")
df.drop(df["Date"] >= "2010-01-05", axis=0, inplace=True)
daten.set_index("Date", axis=0, inplace=True)
這給了我一個關鍵錯誤
KeyError: '[ True True False ... False False False] 在軸中找不到'
解決這個問題的正確方法是什么?
uj5u.com熱心網友回復:
drop方法需要一個索引或列標簽來洗掉行本身。
您可以選擇保留符合條件的行:
df = pd.read_csv('test.csv', parse_dates=['Date'])
df = df[df['Date'] < "2010-01-05"]
輸出:
>>> df
Date Data 1 Data 2 Data n
0 2010-01-02 123 222 223
1 2010-01-03 124 232 233
或者,如果您更drop喜歡這樣使用:
df = pd.read_csv('test.csv', parse_dates='Date')
df.drop(df[df["Date"] >= "2010-01-05"].index, inplace=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/353129.html
上一篇:如何調整此功能以使用夏令時?
