python pandas csv时间聚合_pandas中简单统计分组聚合函数的介绍
说明: 这里只是简单的说明了一些pandas中的一些我在毕设中使用到的函数,这个 模块的并未具体其他的一些功能并未详细的进行说明。
pandas 简单介绍
Python语言的Pandas模块是一种高效结构化数据分析工具,它在NumPy的基础上提供了DataFrame数据结构,并以此为核心提供了大量的数据的输入输出、清洗、处理和分析等一些函数
pandas 相当于 python 中 excel:它使用表(也就是 dataframe),能在数据上做各种变换,但还有其他很多功能。
pandas的引入
# as 作用是为了这个模块指定别名方便使用
import pandas as pd
pandas 导入数据
读取CSV文件中的内容:
df = pandas.read_csv(filepath_or_buffer, sep =',', usecols,names )
参数的含义
filepath_or_buffer:文件路径
sep :分隔符,默认用","隔开
usecols:指定读取的列名,列表形式
names: 指定列名
读取 Excel 中的 数据
pd.read_excel(file, sheet_name)
sheet_name参数允许指定单张表格或多张表格被读取。
sheet_name的默认值是0,这表明读取的是第一张表格。
注: 这直说了如何导入CSV文件和Excel中的数据,其他类型的可以参考pandas中文网的io工具进行学习
pandas中的一些方法
查看数据的基本信息
# 会展示data数据中是列中是数字类型的统计情况,data后面可以指定列名,查看某一列的信息data[列名]
data.describe()
该方法会显示出数据的总数,平均数,中位数,25%分为数等信息
下图为在 jupyte notebook 中使用该方法返回的示例:
查看数据的整体情况,可以查看出数据的每一列的确实情况和数据类型
data.info()
示例图如下:
统计出现的次数
df[column_1].value_counts()
value_counts() 统计该列中每一项出现的次数
value_counts() 后面可以进行切片,进行选择输出
上面的内容 可以使用for循环将处理后的数据构造成字典
for name,data in df['areaName'].value_counts().items():
print(name,data)
选择为特定值的数据
df1 = df[df.列名==值]
# 或者使用下面这种方式
df1 = df[df['列名']==值]
排序
按照值排序
df.sort_values(by=, ascending=)
参数:
by:指定排序参考的键
若是单个键则为字符串,若是多个键则是一个列表,列表中是排序参考的键
ascending:默认升序
ascending=False:降序
ascending=True:升序
按照索引排序
# 对索引进行排序
data.sort_index()
cut函数
pandas.cut用来把一组数据分割成离散的区间。比如有一组面积数据,可以使用pandas.cut将面积数据分割成不同的范围并打上标签。
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
参数含义
x:被切分的类数组(array-like)数据,必须是1维的(不能用DataFrame);
bins:bins是被切割后的区间(或者叫“桶”、“箱”、“面元”),有3中形式:一个int型的标量、标量序列(数组)或者pandas.IntervalIndex 。
当bins为一个int型的标量时,代表将x平分成bins份。x的范围在每侧扩展0.1%,以包括x的最大值和最小值。
标量序列定义了被分割后每一个bin的区间边缘,此时x没有扩展。
pandas.IntervalIndex 定义要使用的精确区间。
right:bool型参数,默认为True,表示是否包含区间右部。比如如果bins=[1,2,3],right=True,则区间为(1,2],(2,3];right=False,则区间为(1,2),(2,3)。
labels:给分割后的bins打标签,比如把年龄x分割成年龄段bins后,可以给年龄段打上诸如青年、中年的标签。labels的长度必须和划分后的区间长度相等,比如bins=[1,2,3],划分后有2个区间(1,2],(2,3],则labels的长度必须为2。如果指定labels=False,则返回x中的数据在第几个bin中(从0开始)。
retbins:bool型的参数,表示是否将分割后的bins返回,当bins为一个int型的标量时比较有用,这样可以得到划分后的区间,默认为False。
precision:保留区间小数点的位数,默认为3.
include_lowest:bool型的参数,表示区间的左边是开还是闭的,默认为false,也就是不包含区间左部(闭)。
duplicates:是否允许重复区间。有两种选择:raise:不允许,drop:允许。
返回值
out:一个pandas.Categorical, Series或者ndarray类型的值,代表分区后x中的每个值在哪个bin(区间)中,如果指定了labels,则返回对应的label。
bins:分隔后的区间,当指定retbins为True时返回。
示例
area = [100,2,52,56,90,15,62,23,10,85,400,102,13,25,98,300,200,20,230,25,89,58,205,102,150,130,125]
area_level = [0, 50, 100, 150, 200, 250, 300, 500]
label_level = ['小于50', '50-100', '100-150', '150-200', '200-250', '250-300', '300-350']
# 使用 cut 对数据 进行分段分组 对 数据的 jzmj 字段 按照 area_level 进行分段
# 参数 labels 是 对分段后的每个区间打上标签
jzmj_cut = pd.cut(area, area_level, labels=label_level)
在 jupyter notebook 中输出 jzmj_cut 的结果为
使用 jzmj_cut.value_counts() 进行统计的结果为
分组和聚合
分组聚合的示意图:
pandas中分组函数
DataFrame.groupby(key, as_index=False)
key:分组的列数据,可以多个(即分组的条件)
聚合函数
count计算分组中非NA值的数量
sum计算非NA值的和
mean计算非NA值的平均值
median计算非NA值的算术中位数
std、var计算非NA值标准差和方差
min、max获得非NA值的最小和最大值
prod计算非NA值的积
first、last获得第一个和最后一个非NA值
分组聚合示例
col =pd.DataFrame({'color': ['white','red','green','red','green'], 'object': ['pen','pencil','pencil','ashtray','pen'],'price1':[5.56,4.20,1.30,0.56,2.75],'price2':[4.75,4.12,1.60,0.75,3.15]})
# 对颜色进行分组 并对分组后的price1字段进行求平均值的聚合操作
col['price1'].groupby(col['color']).mean()
# 输出的结果
color
green 2.025
red 2.380
white 5.560
Name: price1, dtype: float64
# 对 数据按照颜色进行分组,对分组后的数据进行聚合操作
col.groupby(col['color']).mean()
输出的结果为:
apply函数
apply函数可以对DataFrame对象进行操作,既可以作用于一行或者一列的元素,也可以作用于单个元素
apply中必传的参数是一个函数,可以是一个匿名函数或者自定义的函数
df['szlc'].apply(lambda x:x[:3]).value_counts()
# 或者下面这种实现方式
‘’‘
def f(x):
return x[:3]
df['szlc'].apply(f).value_counts()
’‘’
上面的例子是对数据中的szlc这一列中的每一行按照前三个字符进行分类并统计每一类中的总和
原文链接:https://blog.csdn.net/weixin_42038022/article/details/106019069
python pandas csv时间聚合_pandas中简单统计分组聚合函数的介绍相关推荐
- python pandas csv时间聚合_Python通过pandas操作excel常用功能
1.导入数据源 #导入相关库 import pandas as pd import numpy as np import os from pandas import DataFrame,Series ...
- python pandas csv 写文件_Pandas读写CSV文件的方法介绍(附代码)
本篇文章给大家带来的内容是关于Pandas读写CSV文件的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 读csv:使用pandas读取import pandas ...
- python中的内置函数getattr()介绍及示例
python中的内置函数getattr()介绍及示例 其实getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里 ...
- C#中ToInt32以及类似函数用法介绍
C#中ToInt32以及类似函数用法介绍 作用 程序举例 程序逻辑 程序代码 程序 作用 将指定的值转换为 32 位有符号整数.对应的还有ToInt16,ToInt64 指定的值可以是字符串.时间.位 ...
- python pandas csv 追加 空行,python – Pandas:read_csv在空行后忽略行
有一个奇怪的.csv文件,如: header1,header2,header3 val11,val12,val13 val21,val22,val23 val31,val32,val33 很好,但在这 ...
- Python 读取 csv 文件忽略引号中字段的逗号
如题,使用 Python 处理 csv 文件,之前是这么处理的: str = '飞机,火车,汽车' rel = str.split(',') > ['飞机','火车','汽车'] 一般情况下是正 ...
- python pandas csv getitem,访问.csv文件时使用Pandas获取KeyError
出于某种原因,在查看我拥有的.csv股票数据时,大熊猫会抛出错误 . 这是错误: Traceback(最近一次调用最后一次):文件"/usr/local/lib/python3.7/site ...
- Python | 删除csv或者tsv文件中的emoji表情符号
删除csv或者tsv文件中的emoji表情符号,并保存到另外的csv文件中 参考链接码起来: https://blog.csdn.net/okm6666/article/details/8100339 ...
- Python线性代数扩展库numpy.linalg中几个常用函数
本文内容节选自董付国老师2000页Python系列课件第17章"数据分析.科学计算.可视化.机器学习"(本章PPT共410页). ----------相关阅读---------- ...
最新文章
- [RHEL5企业级Linux服务攻略]--第6季 Vsftpd服务全攻略之高级配置
- maven 的依赖传递
- python中与时间有关的对象-datetime、time、date
- citrix android,Citrix Receiver
- .NET跨平台实践:用C#开发Linux守护进程
- YOLO-LITE:专门面向CPU的实时目标检测
- golang自带的rpc 服务端
- iOS开发之UIApplication
- vue获取麦克风_vue使用recorder.js实现录音功能
- php列表代码怎么做的,php项目实战:代码讲解之订单列表问题
- JAVA企业级应用服务器之TOMCAT实战
- 【Redis】Redis中使用Lua脚本
- matlab 打不开excel文件
- HTML-零基础入门
- (第五章) UI--PS基础 调色与校色
- 什么打印软件比较好用?可以打印资料的网上打印平台
- java五子棋小游戏含免费源码
- python精通能赚钱吗_月入3千到月入10万,精通数据分析的人到底有多赚?
- ::ng-deep 与 :host ::ng-deep
- MES 系统价格多少钱?企业如何甄选MES 厂商?
热门文章
- linux gcc编译只能编译一条,请教一个gcc编译器的问题啊
- 嵌入式linux只读保护,如何使用squashfs只读文件系统制作Linux系统文件
- h3c使用acl控制ftp访问_H3C访问控制列表(ACL)实例精华
- jquery load 事件用法
- 雷林鹏分享:jQuery EasyUI 拖放 - 基本的拖动和放置
- 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...
- 目标检测之Faster-RCNN的pytorch代码详解(模型准备篇)
- 转:漫画 我讨厌阅读别人的代码
- C语言课后习题(8)
- mysql查询有数据但返回null_Mybatis查不到数据查询返回Null问题