如何在pandas中使用日期字符串的一部分进行groupby?

时间:2012-06-11 07:02:14

标签: python group-by pandas

        Date Description 
0  6/09/2012      Amazon
1  6/09/2012      iTunes
2  6/08/2012      iTunes
3  6/08/2012    Building
4  6/08/2012   Slicehost

我有一个DataFrame,如上所述。我可以使用函数get_day()来选择上述日期字符串的那一天:

def get_day(date_string):
    d = datetime.strptime(date_string, '%m/%d/%Y')
    return d.day

现在我如何将此函数传递给上面的DataFrame,以便在当天进行groupby而不是使用datestring本身。无法通过查看文档来弄明白。任何帮助赞赏。

1 个答案:

答案 0 :(得分:2)

df.groupby(get_day)

但我总是首先将日期字符串转换为datetime对象。

另一个问题是,您正在呼叫.day,它会返回一个月中的某一天(编号1-31)。您可能想要致电.date()

def get_day(date_string):
    return datetime.strptime(date_string, '%m/%d/%Y').date()

或直接

df.groupby(lambda x: datetime.strptime(date_string, '%m/%d/%Y').date())