Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除数据帧中不同行的列表_Python_Pandas - Fatal编程技术网

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。