【发布时间】:2016-05-10 04:48:19
【问题描述】:
我有数据框df。我想查看最近 6 天内是否有任何项目没有代码 B。
df=
item Date code
X 3/5/2016 A
X 3/6/2016 B
X 3/10/2016 A
X 3/12/2016 B
Y 3/5/2016 B
Y 3/7/2016 A
Y 3/9/2016 A
Y 3/10/2016 A
Z 3/4/2016 B
Z 3/9/2016 A
Z 3/10/2016 A
Z 3/13/2016 A
result = [Y,Z]
这是我的尝试:我创建了一个列来表示检查日期。我groupby item,过滤掉旧记录,说如果没有代码B的记录,就保留。但我的代码似乎没有这样做!任何帮助表示赞赏。
df['Date2'] = pd.to_datetime(df['Date'])
grouped = df.groupby('item')
df['check date'] = (grouped['Date2'].transform(lambda grp: grp.max()-pd.Timedelta(days=6)))
df2 = df.loc[(df['date2'] > df['check date'])]
result=pd.Series(df2['code']<>'B')
【问题讨论】:
标签: python datetime pandas dataframe group-by