删除日期大于给定日期(keyerror)
Drop Dates greater a given date (keyerror)
我有一个 CSV 文件,格式如下:
Date
Data 1
Data 2
...
Data n
2010-01-02
123
222
...
223
2010-01-03
124
232
...
233
...
...
...
...
...
2021-11-06
424
332
...
133
我想将此 table 的所有行读入 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] not found in
axis'
解决这个问题的正确方法是什么?
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)
我有一个 CSV 文件,格式如下:
Date | Data 1 | Data 2 | ... | Data n |
---|---|---|---|---|
2010-01-02 | 123 | 222 | ... | 223 |
2010-01-03 | 124 | 232 | ... | 233 |
... | ... | ... | ... | ... |
2021-11-06 | 424 | 332 | ... | 133 |
我想将此 table 的所有行读入 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] not found in axis'
解决这个问题的正确方法是什么?
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)