transdata笔记:手机数据处理

1 mobile_stay_duration 每个停留点白天和夜间的持续时间

transbigdata.mobile_stay_duration(
    staydata, 
    col=['stime', 'etime'], 
    start_hour=8, 
    end_hour=20)

1.1 主要参数

staydata 停留数据(每一行是一条数据)
col   列名,顺序为[‘starttime’,’endtime’]
start_hour 白天的开始时间
end_hour 白天的结束时间

 1.2 返回内容

duration_night   一个panda的Series,表示夜间持续时间
duration_day  一个panda的Series,表示白天持续时间

1.3 举例

import pandas as pd
from transbigdata import mobile_stay_duration

# 示例数据
data = {
    'stime': ['2024-01-01 07:00', '2024-01-01 22:00', '2024-01-02 11:00', '2024-01-02 03:00'],
    'etime': ['2024-01-01 10:00', '2024-01-02 02:00', '2024-01-02 15:00', '2024-01-02 05:00']
}
staydata = pd.DataFrame(data)
staydata['stime'] = pd.to_datetime(staydata['stime'])
staydata['etime'] = pd.to_datetime(staydata['etime'])
staydata

每一行表示在一个staypoint的开始-结束时间

result = mobile_stay_duration(staydata, col=['stime', 'etime'], start_hour=8, end_hour=20)
result
'''
(0     3600.0
 1    14400.0
 2        0.0
 3     7200.0
 dtype: float64,
 0     7200.0
 1        0.0
 2    14400.0
 3        0.0
 dtype: float64)
'''

两个pandas.Series,分别表示夜间/白天持续时间

2 mobile_identify_work 识别工作地点

transbigdata.mobile_identify_work(
    staydata, 
    col=['uid', 'stime', 'etime', 'LONCOL', 'LATCOL'], 
    minhour=3, 
    start_hour=8, 
    end_hour=20, 
    workdaystart=0, 
    workdayend=4)

从手机停留数据中识别工作地点。规则是确定工作日白天持续时间最长的位置(平均持续时间应超过“minhour”)

2.1 参数

staydata 停留数据
col

列名,按 [‘uid’、stime’、’etime’、’locationtag1’、’locationtag2’, …] 的顺序排列。

可以有多个“locationtag”列来指定位置

minhour 工作日的最短持续时间(小时)
workdaystart 一周中工作日的开始(0表示周一)
workdayend  一周中工作日的结束
start_hour 工作一天的开始时间
end_hout 工作一天的结束时间

2.2 举例

import pandas as pd
from transbigdata import mobile_identify_work

# 示例数据
data = {
    'uid': [1, 1, 1, 2, 2],
    'stime': ['2024-01-01 09:00', '2024-01-02 09:30', '2024-01-03 08:45', '2024-01-06 09:15', '2024-01-07 09:45'],
    'etime': ['2024-01-01 17:00', '2024-01-02 16:30', '2024-01-03 18:00', '2024-01-06 17:15', '2024-01-07 16:45'],
    'LONCOL': [116.38, 116.39, 116.38, 116.40, 116.40],
    'LATCOL': [39.90, 39.91, 39.90, 39.92, 39.92]
}
staydata = pd.DataFrame(data)
staydata['stime'] = pd.to_datetime(staydata['stime'])
staydata['etime'] = pd.to_datetime(staydata['etime'])
staydata

 

work_locations = mobile_identify_work(
    staydata, 
    col=['uid', 'stime', 'etime', 'LONCOL', 'LATCOL'], 
    minhour=3, 
    start_hour=8, 
    end_hour=20, 
    workdaystart=0, 
    workdayend=4
)
work_locations

 

对于uid=2,他的两个停留记录(1月6日 & 1月7日是周六周日,不是工作日,所以不记录用户2的工作位置)

3 mobile_identify_home 识别居住地位置

从手机停留数据中识别居住地位置。规则是确定夜间持续时间最长的位置

staydata 停留数据
col

列名,按 [‘uid’, ‘stime’, ‘etime’, ‘locationtag1’, ‘locationtag2’, …] 的顺序排列。

可以有多个“位置标签”列来指定位置

start_hour  白天时间的开始时间
end_hour 白天时间的结束时间

3.1 举例

import pandas as pd
from transbigdata import mobile_identify_home

# 示例数据
data = {
    'uid': [1, 1, 2, 2],
    'stime': ['2024-01-01 22:00', '2024-01-02 23:00', '2024-01-01 22:30', '2024-01-02 21:00'],
    'etime': ['2024-01-02 06:00', '2024-01-03 07:00', '2024-01-02 05:30', '2024-01-03 06:00'],
    'LONCOL': [116.38, 116.39, 116.40, 116.41],
    'LATCOL': [39.90, 39.91, 39.92, 39.93]
}
staydata = pd.DataFrame(data)
staydata['stime'] = pd.to_datetime(staydata['stime'])
staydata['etime'] = pd.to_datetime(staydata['etime'])
staydata

home_locations = mobile_identify_home(staydata, 
                                      col=['uid', 'stime', 'etime', 'LONCOL', 'LATCOL'], 
                                      start_hour=8, 
                                      end_hour=20)
home_locations

相关推荐

  1. ES6数据处理函数(笔记

    2024-01-25 00:10:01       56 阅读
  2. 【持更】python数据处理-学习笔记

    2024-01-25 00:10:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 00:10:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 00:10:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 00:10:01       82 阅读
  4. Python语言-面向对象

    2024-01-25 00:10:01       91 阅读

热门阅读

  1. 生成随机数C++

    2024-01-25 00:10:01       48 阅读
  2. k8s之HPA

    k8s之HPA

    2024-01-25 00:10:01      39 阅读
  3. TS的高级类型

    2024-01-25 00:10:01       53 阅读
  4. HJ10 字符个数统计【C语言】

    2024-01-25 00:10:01       56 阅读
  5. 安全认证机制之JWT

    2024-01-25 00:10:01       56 阅读
  6. HJ9 提取不重复的整数【C语言】

    2024-01-25 00:10:01       56 阅读
  7. jvm参数配置

    2024-01-25 00:10:01       51 阅读
  8. 关闭Windows自动更新的6种方法

    2024-01-25 00:10:01       50 阅读
  9. ABAP ME28 ME2M 增加展示字段增强

    2024-01-25 00:10:01       48 阅读