pandas学习笔记二

时间序列

pd.to_datetime() # 字符串 转 datetime

基本操作列

del //删除列
drop //删除指定index //也能删除列
索引
loc //行和列的索引
iloc //整数的行列索引
算数
df1 + df2
df1.add(df2, fill_vlaue=0) //没重叠的用0填充
sub
div
mul
pow
std //方差

函数应用

frame.apply(func) //每一列或每一行执行该函数 应用到一维的数据上
dataframe.applymap(func) //应用到每一个元素上
排序
sort_index //series index排序 dataframe 任意一个轴排序
sort_values(by=‘name’) //值排序 指定colums排序
rank(method=‘first’) //排名 若值相同按照第一次出现排名 method: average min max first dense
重复index
df.index.is_uniques //判断Index是否有重复值
统计
idxmax 返回最大值的index
description
唯一值、值计算
unique //series 得到唯一的数组
value_counts() //series 计算唯一值
isin //是否包含
Index.get_indexer //从可能包含重复值的数组到另一个不同值的数组
文件读写
read_json
html
xml
二进制文件
to_pickle
read_pickle
HDFStore //hdf5格式
excel
ExcelFile
read_excel
requests //web apis交互
数据库交互
sqlalchemy
read_sql
数据清洗和准备处理缺失数据
isnull
dropna(how, axis, thresh) //滤除缺失数据 thresh 删除几个Na值的行
填充缺失数据
fillna(method=ffill, limit=2) //
移除重复数据
duplicated //得到行重复的bool
drop_duplicates([column], keep=‘last’) //直接去除重复数据 last保留最后一个
unique //series 使用
利用函数或映射进行数据转换
data[‘food’].str.lower() //正行数据转小写
应用于series的每个元素
map
替换值
replace(a,b) b替换a
重命名轴索引
index.map(lambda)
rename(index=str.lower, columns=str.lower)
rename({"":""}) //直接重命名
离散化和面元划分描述cut(ages, bins, labels)//ages按照bins方式分割 不同的区别代表labelsqcut //与cut区别 均匀分割将数量平均分割。 边界值不能为空,需要添加duplicates="drop"处理该异常检测和过滤异常值
sign np.sign(data)可以生成1和-1 //整数为1 负数为-1
排列和随机采样
numpy.random.permutation(5) //获得0到4随机排列的数组
df.take(sampler) //根据数组sampler来进行index排序
df.sample(n=3) //随机选取3行数据
计算指标/哑变量 //不懂
get_dummies
字符串
split
strip //去除空格
join
count //字串出现的次数
index
find
replace
正则表达式
re模块
pandas矢量化字符串
series.str.func
数据规整: 聚合、合并和重塑层次化索引 多重索引 index
unstack //将双重索引变为一重 将数据的行“旋转”为列。
stack //一重变双重 将数据的列“旋转”为行。
重排与分级排序
swaplevel(‘a’, ‘b’) //a 与 b 互换
sort_index
使用dataframe的列作为索引
set_index(drop=)
reset_index //索引转成列 与上相反

DataFrame 合并

merge(df1, df2, on=) //根据相同的列名合并
merge(df1, df2, left_on=, right_on=) //根据指定的列名合并
merge(df1, df2, how=) //默认交集 外连接(并集)outer 左连接left 右连接right
merge(df1, df2, suffixes=) //列名重复,加前缀
索引上的合并
merge(left1, right1, left_on=‘key’, right_index=True) //左边的key列与右边的索引相对应的合并
left.join(right, how) //左索引和右索引的合并
轴向连接
enate //不懂
concat //将索引和值连接在一起
concat([s1,s2])
cooncat([df1,df2])
df1.join(df2) //横向添加
合并重叠数据
全部索引,部分重叠
np.where
b[:-2].combine_first(a[2:]) //部分组合重叠
df1.combine_first(df2) //df1上的NaN会被df2给替换
长宽格式转换 //不懂
数据聚合与分组运算groupby
pieces = dict(list(df.groupby(‘key1’))) //分组转dict
pieces[‘a’]
通过字典或series分组
通过函数分组

数据聚合

grouped.agg(func) //使用该函数 自定义函数
apply //groupby使用这个
高级应用
transform(func) //应用到每一个value中
时间
datetime
timedelta
字符串和datetime的相互转换
str(datetime) //将datetime 转 str
datetime.strftime()
strptime //将字符串转datetime
from dateutil.parser import parse
parse(‘2011-01-03’) //也能实现,任何日期表示形式都能解析
to_datetime
//切片操作
ts.truncate(after=‘1/9/2011’) //删除后面
date_range(startDate, endDate) //生成日期范围
date_range(startDate, periods=20) //20天
date_range(startDate, endDate, freq=‘4h’) //频率
DatetimeIndex
时区处理
import pytz
tz_localize
操作时区意识型Timestamp对象
不同时区之间的运算
时期及其算数运算
Period
period_range
PeriodIndex
布尔型
any
all
移动数据
shift(2) //将数据上移或下移,保持索引不变
category 节省内存和高性能的工具
有两个属性 categories codes
pd.Categorical() //直接创建
cat_s.cat.codes
cat_s.cat.categories
add_categories 在已存在的分类后面添加新的(未使用的)分类
as_ordered 使分类无序
as_unordered 使分类无序
remove_categories 移出分类,设置任何被移出的值为null
remove_unused_categories 移出任意不出现的数据中的分类值
rename_categories 用指定的新分类的名字替换分类; 不能改变分类的数目
reorder_categories 与rename_categories很像,但是可以改变结果,使分类有序
set_categories 用指定的新分类得名字替换分类;可以添加或删除分类
性能
category使用的内存少于object
检测函数
memory_usage //检测内存
%time //检测时间
透视表
pivot_table() //数据,行,列,函数 //在画图的时候一般都会使用
series 转 dataframe
to_frame()
dataframe遍历
for index, row in df.iterrows():
print row[“c1”], row[“c2”]

内容概要:本文详细介绍了一个基于C++的养老院管理系统的设计与实现,旨在应对人口老龄化带来的管理挑战。系统通过整合住户档案、健康监测、护理计划、任务调度等核心功能,构建了从数据采集、清洗、AI风险预测到服务调度与可视化的完整技术架构。采用C++高性能服务端结合消息队列、规则引擎和机器学习模型,实现了健康状态实时监控、智能任务分配、异常告警推送等功能,并解决了多源数据整合、权限安全、老旧硬件兼容等实际问题。系统支持模块化扩展与流程自定义,提升了养老服务效率、医护协同水平和住户安全保障,同时为运营决策提供数据支持。文中还提供了关键模块的代码示例,如健康指数算法、任务调度器和日志记录组件。; 适合人群:具备C++编程基础,从事软件开发或系统设计工作1-3年的研发人员,尤其是关注智慧养老、医疗信息系统开发的技术人员。; 使用场景及目标:①学习如何在真实项目中应用C++构建高性能、可扩展的管理系统;②掌握多源数据整合、实时健康监控、任务调度与权限控制等复杂业务的技术实现方案;③了解AI模型在养老场景中的落地方式及系统架构设计思路。; 阅读建议:此资源不仅包含系统架构与模型描述,还附有核心代码片段,建议结合整体设计逻辑深入理解各模块之间的协同机制,并可通过重构或扩展代码来加深对系统工程实践的掌握。
内容概要:本文详细介绍了一个基于C++的城市交通流量数据可视化分析系统的设计与实现。系统涵盖数据采集与预处理、存储与管理、分析建模、可视化展示、系统集成扩展以及数据安全与隐私保护六大核心模块。通过多源异构数据融合、高效存储检索、实时处理分析、高交互性可视化界面及模块化架构设计,实现了对城市交通流量的实时监控、历史趋势分析与智能决策支持。文中还提供了关键模块的C++代码示例,如数据采集、清洗、CSV读写、流量统计、异常检测及基于SFML的柱状图绘制,增强了系统的可实现性与实用性。; 适合人群:具备C++编程基础,熟悉数据结构与算法,有一定项目开发经验的高校学生、研究人员及从事智能交通系统开发的工程师;适合对大数据处理、可视化技术和智慧城市应用感兴趣的技术人员。; 使用场景及目标:①应用于城市交通管理部门,实现交通流量实时监测与拥堵预警;②为市民出行提供路径优化建议;③支持交通政策制定与信号灯配时优化;④作为智慧城市建设中的智能交通子系统,实现与其他城市系统的数据协同。; 阅读建议:建议结合文中代码示例搭建开发环境进行实践,重点关注多线程数据采集、异常检测算法与可视化实现细节;可进一步扩展机器学习模型用于流量预测,并集成真实交通数据源进行系统验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值