Python 当日期属于特定月份时,筛选日期列
如何过滤df数据帧,使其仅包含4月和5月的数据?为什么我在语句中的最后一个Python 当日期属于特定月份时,筛选日期列,python,pandas,datetime,Python,Pandas,Datetime,如何过滤df数据帧,使其仅包含4月和5月的数据?为什么我在语句中的最后一个失败?我想过滤四月和五月的数据,并将其复制到另一个数据帧中 df = pd.DataFrame({'year': [2015, 2016], 'month': [4, 3], 'day': [4, 5]}) x=pd.to_datetime(df) 4 in (4,5) x.dt.month in (4,5) #y=x.dt.mon
失败?我想过滤四月和五月的数据,并将其复制到另一个数据帧中
df = pd.DataFrame({'year': [2015, 2016],
'month': [4, 3],
'day': [4, 5]})
x=pd.to_datetime(df)
4 in (4,5)
x.dt.month in (4,5)
#y=x.dt.month in (4,5)
中的检查左操作数是否是右操作数的成员,x.dt.month
是熊猫系列,而不是(4,5)
的成员;您需要矢量化的isin
方法:
x.dt.month.isin((4,5))
#0 False
#1 False
#dtype: bool
中的检查左操作数是否是右操作数的成员,x.dt.month
是熊猫系列,而不是(4,5)
的成员;您需要矢量化的isin
方法:
x.dt.month.isin((4,5))
#0 False
#1 False
#dtype: bool
1秒之前,+1。值得一提的是,这是一个使用set
@jpp的好机会。你能分享一下如何使用set
?vals={4,5};mask=pd.to_datetime(df).dt.month.isin(vals)
@Psidom,我想问一下,pd.Series.isin实际上是如何矢量化的。。将set
与numpy
数组相结合通常意味着它不是(但请纠正我)。@jpp这是个好问题,但实际上,如果您查看isin
,在使用np.in1d
之前,值总是转换为数组,这将进一步使用np.argsort
和向量化比较来计算结果。对于数字类型,我认为它在某种程度上是矢量化的。1秒之前,+1。值得一提的是,这是一个使用set
@jpp的好机会。你能分享一下如何使用set
?vals={4,5};mask=pd.to_datetime(df).dt.month.isin(vals)
@Psidom,我想问一下,pd.Series.isin实际上是如何矢量化的。。将set
与numpy
数组相结合通常意味着它不是(但请纠正我)。@jpp这是个好问题,但实际上,如果您查看isin
,在使用np.in1d
之前,值总是转换为数组,这将进一步使用np.argsort
和向量化比较来计算结果。所以对于数字类型,我认为它在某种程度上是矢量化的。