我有这样的数据格式(其中时间戳为日期时间格式)
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/