Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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,有一些错误。如果满足两个条件,我将尝试过滤掉数据 import pyodbc import pandas as pd import datetime from dateutil.relativedelta import relativedelta effdate = datetime.date(2018,12,31) conn = pyodbc.connect( r'DRIVER={ODBC Driver 13 for SQL Server};' r'SERVER=server

有一些错误。如果满足两个条件,我将尝试过滤掉数据

import pyodbc
import pandas as pd
import datetime
from dateutil.relativedelta import relativedelta

effdate = datetime.date(2018,12,31)
conn = pyodbc.connect(
    r'DRIVER={ODBC Driver 13 for SQL Server};'
    r'SERVER=server;'
    r'DATABASE=database;'
    r'Trusted_Connection=yes;'
    )
strSQL = "" # here is a SQL query which pulls many columns, including SaleDate, which is date format, and CategoryName, which contains text

df_auction = pd.read_sql(strSQL, conn)
priordate_rt = effdate + relativedelta(months=-6)
priordate_rt = pd.Timestamp(priordate_rt)
df_auction['SaleDateAdj'] = pd.to_datetime(df_auction['SaleDate'], format='%Y-%m-%d')
df_auction = df_auction[~((df_auction['CategoryName']=='Cars') & (df_auction['SaleDateAdj']<priordate_rt))]
试着做

import pandas as pd
df_test['SaleDate'] = pd.to_datetime(df_test['SaleDate'])

然后执行比较以过滤掉。

成功了!我尝试了很多方法,包括像您建议的那样将列转换为datetime,但可能当时我已经将变量priordate\u rt转换为string。非常感谢。很高兴我能提供帮助,如果你知道该列中日期的格式,你应该将它们传递给
。to_datetime
方法以获得更快的结果抱歉,迭戈,还有一个问题。我在做df_测试,它很有效。df_test=代码前面的df_拍卖。但是当我在df_拍卖上对_datetime做同样的操作时,过滤就不起作用了。TypeError:“@maxutil不确定您的意思。你能更新你的问题,包括
df_拍卖的代码吗。我的df中有不止一个列叫做CategoryName。一旦我删除了副本,上面的代码就可以工作了。
df_test = df_auction[(df_auction['CategoryName']=='Cars')]
import pandas as pd
df_test['SaleDate'] = pd.to_datetime(df_test['SaleDate'])