【发布时间】:2018-09-26 19:39:36
【问题描述】:
我对 pandas 很陌生,很抱歉没有多大意义。我有一种按类别分组的感觉,但是我不确定如何在 groupby 中运行函数。
我想从 Date1 中的给定行中查找日期,并查看是否有相同 id 的任何日期(在 date2 中)在 7 天内。
我想通过做来拆分 date1 和 date2,但我不确定从那里去哪里。
g1 = df[['Category', 'Date1']]
g2 = df[['Category', 'Date2']]
dif = pd.Timedelta(7, unit='D')
df['isDateWithin7Days'] = np.where((g1['Category'] == g2['Category'])(df['Date1'] > g2['Date2']-dif, True, False))
我收到这个错误
ValueError:操作数无法与形状一起广播 (50537,) (3,)
df1:
category date1 date2
blue 1/1/2018
blue 1/2/2018
blue 1/5/2018
blue 2/1/2018
green 1/3/2018
green 1/1/2018
red 12/1/2018
red 11/1/2018
预期结果:
category date1 date2 isDateWithin7Days? EarliestDate?
blue 1/1/2018 True 1/2/2018
blue 2/1/2018 False 0
green 1/3/2018 False 0
red 12/1/2018 False 0
【问题讨论】:
-
为什么
isDateWithin7Days?forgreen,1/3/2018是假的?你使用的是mm/dd/yyyy格式吗? -
绿色为假,因为 2018 年 1 月 1 日在 2018 年 1 月 3 日之前。是的,它是 mm/dd/yyyy