我有这样的数据格式(其中时间戳为日期时间格式)

Timestamp           Location
7/24/2017 14:55:19  Location_A
7/24/2017 15:09:16  Location_B
7/25/2017 14:05:45  Location_B
7/26/2017 8:34:40   Location_A
7/26/2017 8:45:56   Location_B
7/26/2017 9:34:11   Location_A
7/26/2017 10:03:14  Location_B
7/27/2017 9:26:14   Location_B
7/27/2017 9:37:26   Location_B
7/31/2017 10:22:46  Location_A
7/31/2017 10:59:02  Location_B


每次在Location_A或Location_B发生时间戳记时,则意味着该位置当天开放。我想计算每个营业地点营业的天数,以便输出看起来像这样:

Location    Days_Open
Location_A  3
Location_B  5


我知道我需要使用groupby并可能需要使用lambda函数,但是运气不高。感谢您的帮助

最佳答案

假设Timestamp是一个字符串,

df['Timestamp'].str.split(' ', n=1).str[0].groupby(df['Location']).nunique()


第一部分df['Timestamp'].str.split(' ', n=1).str[0]提取字符串的日期部分。然后,将其按位置分组,以便我们按位置分别计算唯一日期。

如果Timestamp是时间戳列,则左侧部分将简化为df['Timestamp'].dt.date。完整的表达式将是:

df['Timestamp'].dt.date.groupby(df['Location']).nunique()

关于python - Pandas -确定数据帧中记录的天数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60157414/

10-12 07:26