数据集笔记:分析OpenCellID 不同radio/ create_time update_time可视化

news2024/11/9 4:02:27

1 读取数据

(以新加坡的cellID为例)

import geopandas as gpd
import pandas as pd

opencellid=pd.read_csv('OpenCellID_SG.csv',header=None,
            names=['radio','mcc','net','area','cell','unit',
                  'lon','lat','range','samples','changeable1',
                  'created1','updated','AveSignal'])
opencellid

2 不同radio的比例

radio_gather=opencellid.groupby('radio').size()
radio_gather
'''
radio
GSM     10875
LTE     59369
NR        372
UMTS    61726
Name: mcc, dtype: int64
'''
import matplotlib.pyplot as plt

plt.pie(radio_gather,labels=radio_gather.index)

3 created1 & update 

3.1 unix时间戳 转 datetime

opencellid['created1']=pd.to_datetime(opencellid['created1'],unit='s')
opencellid['updated']=pd.to_datetime(opencellid['updated'],unit='s')
opencellid

3.2 datetime截断到年

opencellid['created_year'] = opencellid['created1'].dt.year
opencellid['updated_year'] = opencellid['updated'].dt.year
opencellid

3.3 根据年份和radio聚合

created_grouped = opencellid.groupby(['created_year', 'radio']).size().reset_index(name='count')
created_grouped

updated_grouped = opencellid.groupby(['updated_year', 'radio']).size().reset_index(name='count')
updated_grouped

 

3.4 创建数据透视表

pandas 笔记:pivot_table 数据透视表\pivot_UQI-LIUWJ的博客-CSDN博客

created_pivot=created_grouped.pivot(index='created_year',
                      columns='radio',
                      values='count'
                     )
created_pivot

created_pivot=created_pivot.fillna(0).reset_index()
created_pivot

updated_pivot=updated_grouped.pivot(index='updated_year',
                      columns='radio',
                      values='count'
                     )
updated_pivot=updated_pivot.fillna(0).reset_index()
updated_pivot

3.5 绘制柱状图

from pyecharts.charts import Bar, Grid
from pyecharts import options as opts

bar_created = (
    Bar(init_opts=opts.InitOpts(width='2000px'))
    .add_xaxis(created_pivot['created_year'].astype(str).tolist())
    .add_yaxis("GSM", created_pivot['GSM'].tolist())
    .add_yaxis("LTE", created_pivot['LTE'].tolist())
    .add_yaxis("NR", created_pivot['NR'].tolist())
    .add_yaxis("UMTS", created_pivot['UMTS'].tolist())
    .set_global_opts(title_opts=opts.TitleOpts(title="Count of Created Radio Types per Year"))
)
'''
init_opts=opts.InitOpts(width='2000px') 设置柱状图的宽度
'''

bar_updated = (
    Bar(init_opts=opts.InitOpts(width='2000px'))  # Set chart width
    .add_xaxis(updated_pivot['updated_year'].astype(str).tolist())
    .add_yaxis("GSM", updated_pivot['GSM'].tolist())
    .add_yaxis("LTE", updated_pivot['LTE'].tolist())
    .add_yaxis("NR", updated_pivot['NR'].tolist())
    .add_yaxis("UMTS", updated_pivot['UMTS'].tolist())
    .set_global_opts(title_opts=opts.TitleOpts(title="Count of Updated Radio Types per Year", pos_top="50%"))
)
#pos_top="50%" 设置第二张图title的位置

# Creating a Grid
grid = (
    Grid(init_opts=opts.InitOpts(width='2000px'))
    .add(bar_created, grid_opts=opts.GridOpts(pos_bottom="60%"))
    .add(bar_updated, grid_opts=opts.GridOpts(pos_top="60%"))
)
#两张图叠起来

# Save the grid as a .html file
grid.render("combined_chart.html")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1085351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024届通信工程保研经验分享(预推免入营即offer)

2024届通信工程保研经验分享(预推免入营即offer) BackGround夏令营情况:预推免情况: BackGround 本科院校:末九 专业:通信工程 rank:3/123(预推免绩点排名)&#xff0…

我用了多年的前端框架,强烈推荐!

大家好,我是鱼皮,今天给大家分享一个我自己用了多年、现在团队也在用的前端框架 —— Ant Design Pro。 什么是 Ant Design Pro? Ant Design Pro 是由蚂蚁金服开发的、基于 Ant Design 组件库的开发框架,专门用于构建企业级管理…

Linux:redis集群(3.*版本 和 5.*版本)搭建方法

介绍 至少6个实例才能组成集群。3主3从会自动分配 Redis集群原理 Redis集群架构 Redis Cluster采用虚拟槽分区,将所有的数据根据算法映射到0~16383整数槽内 Redis Cluster是一个无中心的结构 每个节点都保存数据和整个集群的状态 集群角色 Master:Master…

docker入门加实战—docker常见命令

docker入门加实战—docker常见命令 在介绍命令之前,先用一副图形象的展示一下docker的命令: 常见命令 docker的常见命令和文档地址如下表: 命令说明文档地址docker pull拉取镜像docker pulldocker push推送镜像到DockerRegistrydocker pus…

c/c++--字节对齐(byte alignment)

1. 默认字节对齐 在所有结构体成员的字节长度都没有超出操作系统基本字节单位(32位操作系统是4,64位操作系统是8)的情况下 按照结构体中字节最大的变量长度来对齐;若结构体中某个变量字节超出操作系统基本字节单位 那么就按照系统字节单位来对齐。 注意&#xff1…

MQTT C库下载

方法一、从Eclipse paho下载 https://eclipse.dev/paho/index.php?pagedownloads.php 方法二,从MQTT官网下载 https://mqtt.org/software/ https://os.mbed.com/teams/mqtt/code/MQTTPacket/ MQTTPacket源码和paho下载的差不多 方法三、从Keil5 包管理工具…

刷新页面,时间展示错误

当我们刷新页面之前时间是正常展示的,在刷新页面之后,时间也在展示,只不过时间错误。 刷新之前 刷新之后(系统原因暂时拿不到数据):用同一图代替,颜色是灰色 明显可以看到时间颜色发生了变化&a…

C++智能指针(二)——weak_ptr初探

文章目录 1. shared_ptr 存在的问题2. 使用weak_ptr2.1 初始化 weak_ptr2.2 访问数据 1. shared_ptr 存在的问题 与 shared_ptr 的引入要解决普通指针存在的一些问题一样,weak_ptr 的引入,也是因为 shared_ptr 本身在某些情况下,存在一些问题…

android U广播详解(一)

概念介绍 进程队列 BroadcastQueueModernImpl 的设计围绕着为设备上的每个潜在进程维护一个单独的 BroadcastProcessQueue 实例。表明用于传送到特定进程的Pending {link BroadcastRecord} 条目队列。整个类都标记为 {code NotThreadSafe},因为调用者有责任始终与…

Linux 用户层、内核层和MMU

一、Linux 用户层、内核层 在 Linux 中,所有设备都以文件的形式存放在/dev 目录下,都是通过文件的方式进行访问,设备节点是Linux 内核对设备的抽象,一个设备节点就是一个文件。应用程序通过一组标准化的调用执行访问设备&#xff…

SwiftUI 中如何实现文件导入和导出

文章目录 前言导入导出文件移动总结 前言 之前谈论了在 SwiftUI 中选择照片和视频的问题。今天我们将学习如何在 SwiftUI 视图中导入和导出文件。通过使用新的 fileImporter 和 fileExporter 视图修饰符,可以很方便实现这个功能。 导入 SwiftUI 框架提供了 fileI…

RAMday9

设置按键中断,按键1按下,LED亮,再按一次,灭;按键2按下,蜂鸣器响,再按一次,不响;按键3按下,风扇转,再按一次,风扇停 代码 do_irq.c #include "key.h" extern…

火狐浏览器页面翻译

打开扩展 扩展搜索tran 点击谷歌快译组件 设置翻译语言 安装完成后即可右键翻译页面

【数据库——MySQL(实战项目1)】(3)图书借阅系统——存储函数

目录 1. 简述2. 功能代码2.1 创建存储函数,根据图书编号查借阅人姓名,并调用该函数查询‘ **小邓在森林** ’已借未还的图书情况;2.2 创建存储函数,计算某借阅人还能借阅的图书数目,学生限额 5 本,教师限额…

两个连续变量乘积线性化——McCormick envelope近似

两个连续变量乘积的形式,可以进行近似线性化转化(没有完全等价的线性化方法)。要说明的是这是一种近似线性化,并不是完全等价,存在一定的误差。转化的方法是,McCormick envelope近似(McCormick …

快速解决“找不到msvcr120.dll无法执行代码”问题,总结5解决方法

计算机已经成为我们生活和工作中不可或缺的一部分。然而,在使用计算机的过程中,我们常常会遇到各种问题,其中之一就是找不到msvcr120.dll文件。这个问题可能会可能导致计算机程序软件,游戏无法正常运行,影响到我们的工…

试图带你一文搞懂transformer注意力机制(Self-Attention)的本质

这篇文章主要想搞懂以下几个问题: 1、什么是自注意力(Self-Attention) 2、Q,K,V是什么 好了废话不多说,直接进入正题 Q,K,V分别代表query,key和value,这很容易让人联想到python的字典数据结构&#xff…

西安交大转子数据集故障诊断(Python代码,MSCNN结合LSTM结合注意力机制模型)

1.运行效果:西安交大转子数据集故障诊断(Python代码,MSCNN结合LSTM结合注意力机制模型)_哔哩哔哩_bilibili 2.环境库版本 如果库版本不一样, 一般也可以运行,这里展示我运行时候的库版本,是为了…

多线程 - 锁策略 CAS

常见的锁策略 此处谈到的锁策略,不局限于 Java,C,Python,数据库,操作系统……但凡是涉及到锁,都是可以应用到下列的锁策略的 乐观锁 vs 悲观锁 锁的实现者,预测接下来锁冲突(锁竞争,两个线程针对一个对象加锁,产生阻塞等待了)的概率是大,还是不大,根据这个冲突的概率,来接下…

30+程序员:如何成为工作领域专家丨IDCF

想要独立完成有一定复杂度的开发和维护工作,或者带领团队完成产品发布、项目交付?要成为研发经理、核心项目负责人? 但又苦于没有丰富的实战经验、或是有经验但是没有可以证明能力水平的认证。 在IT行业,年龄是一个敏感话题。特…