Python 删除数据帧中不同行的列表
我有一个日期列表和一个数据框。我想删除列表中的数据帧日期Python 删除数据帧中不同行的列表,python,pandas,Python,Pandas,我有一个日期列表和一个数据框。我想删除列表中的数据帧日期 bad_dates = ['2019-01-24', '2019-01-29'] df = r2POADC r2DCAC r2ACPOA ... good1 bad bad1 2019-01-24 0.931928 0.953512 0.952798 ... False False True 2019-01-25 -1.681725 -2.163
bad_dates = ['2019-01-24', '2019-01-29']
df = r2POADC r2DCAC r2ACPOA ... good1 bad bad1
2019-01-24 0.931928 0.953512 0.952798 ... False False True
2019-01-25 -1.681725 -2.163356 0.961674 ... False False True
2019-01-26 -0.879915 -1.398238 0.911883 ... False False True
2019-01-28 -1.637134 -0.718831 0.783878 ... False False True
2019-01-29 -1.839277 -6.368115 0.951883 ... False False True
2019-01-30 -0.188997 -0.566269 0.919461 ... False False True
我的代码是:
df.drop([bad_dates],axis=0,inplace=True)
我当前的输出是:
KeyError: "[('2019-01-24', '2019-01-29')] not found in axis"
这很有趣,因为这两个日期都存在于索引中,但都没有在轴(索引)中找到
我想要以下输出:
df = r2POADC r2DCAC r2ACPOA ... good1 bad bad1
2019-01-25 -1.681725 -2.163356 0.961674 ... False False True
2019-01-26 -0.879915 -1.398238 0.911883 ... False False True
2019-01-28 -1.637134 -0.718831 0.783878 ... False False True
2019-01-30 -0.188997 -0.566269 0.919461 ... False False True
看起来像!我的代码中有一个小错误 处理日期时,pandas在大多数情况下都会隐式地将字符串转换为日期<但是,代码>删除显然是一个例外,因此需要显式转换:
df.drop(pd.to_datetime(bad_dates), axis=0, inplace=True)
坏日期是一个列表。您想要的是迭代列表中的项目,如果有匹配项,则跳过该行。@Rebin不介意,我是python新手。给一些代码来说明如何做会有很大帮助。df.drop(坏日期,axis=0,inplace=True)?
pandas drop()
可以处理列表。如@Wen Ben所说,bad_dates
周围有额外的方括号。df.drop(pd.to_datetime(bad_dates),axis=0,inplace=True)
如果索引类型为datetime。