用python处理RealityMining数据

本文介绍了如何使用Python将MIT的RealityMining数据集中的MAT文件转换为CSV格式,包括通信记录和朋友关系数据。文章提供转换代码,并提到了在安装MATLAB引擎时可能遇到的问题及其解决方案。
摘要由CSDN通过智能技术生成

前言

由于学习的需要最近要使用到MIT的RealityMining数据集(数据是mat格式),对于习惯使用python的自己还是比较麻烦的,所以在使用之初就想着怎么把mat文件转换为csv,在转换的过程中也尝试使用python调用matlab的接口用于转换时间的格式。

数据地址

http://realitycommons.media.mit.edu/realitymining4.html

使用的数据

RealityMining数据集中包含两个部分,一个部分是s,另一部分是network。s中包含了106个数据样本的各种通信信息以及问卷调查信息,network中包含了朋友关系的标注信息等。我使用到的信息为s.comm和network.friends,其中s.comm中包含了每一个数据样本(人)的通信信息:通信日期,通信人,通信形式等。

转换代码

python

import scipy.io as sio
import matlab.engine
import time
from datetime import datetime


def save_to_local_communication_data(dataPath, savePath):
    eng = matlab.engine.start_matlab()  # 启动matlab引擎
    '''
    数据保存格式:人员,时间,联系人,联系方式,方向,持续时间

    '''
    data = sio.loadmat(dataPath)
    s = data['s']
    length_s = s.shape[1]
    # length_s_n_comm = s[0][0][0].shape[1]
    print(length_s)
    # print(length_s_n_comm)
    with open(savePath, "w", newline="") as csvfile:
        csvfile.write('people' + ',' + 'date' + ',' + 'contact' + ',' + 'description' + ',' + 'direction' + ',' +
                      'duration' + '\n')
        for i in range(length_s):
            length_s_comm_temp = s[0][i][0].shape[1]
            if not length_s_comm_temp == 0:
                for j 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值