首页
学习
活动
专区
圈层
工具
发布

python数据科学系列:pandas入门详细教程

,仅支持一维和二维数据,但数据内部可以是异构数据,仅要求同列数据类型一致即可 numpy的数据结构仅支持数字索引,而pandas数据结构则同时支持数字索引和标签索引 从功能定位上看: numpy虽然也支持字符串等其他数据类型...或字典(用于重命名行标签和列标签) reindex,接收一个新的序列与已有标签列匹配,当原标签列中不存在相应信息时,填充NAN或者可选的填充值 set_index/reset_index,互为逆操作,...切片形式访问时按行进行查询,又区分数字切片和标签切片两种情况:当输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即无需切片首末值存在于标签列中),包含两端标签结果,无匹配行时返回为空...get,由于series和dataframe均可以看做是类字典结构,所以也可使用字典中的get()方法,主要适用于不确定数据结构中是否包含该标签时,与字典的get方法完全一致 ?...广播机制,即当维度或形状不匹配时,会按一定条件广播后计算。由于pandas是带标签的数组,所以在广播过程中会自动按标签匹配进行广播,而非类似numpy那种纯粹按顺序进行广播。

23.4K31

【数据处理包Pandas】数据载入与预处理

目录 一、数据载入 二、数据清洗 (一)Pandas中缺失值的表示 (二)与缺失值判断和处理相关的方法 三、连续特征离散化 四、哑变量处理 准备工作 导入 NumPy 库和 Pandas 库。...使用说明 axis 默认为axis=0,当某行出现缺失值时,将该行丢弃并返回,当axis=1,当某列出现缺失值时,将该列丢弃 how 表示删除的形式。...all表示当且仅当全部为缺失值时执行删除操作。默认为any。...bool取值,默认False,当inplace=True,即对原数据操作,无返回值 dropna默认删除任何包含缺失值的整行数据。...df.dropna(axis='rows', thresh=3) 3、填充缺失值 缺失值所在的特征为数值型时,通常利用其均值、中位数和众数等描述其集中趋势的统计量来填充;缺失值所在特征为类别型数据时,则选择众数来填充

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python时间序列处理神器:Rolling 对象,3分钟入门 | 原创

    第三期:文末留言送书 Window Rolling 对象在处理时间序列的数据时,应用广泛,在Python中Pandas包实现了对这类数据的处理。...取值为int 时,每一个窗口宽度是固定的。 如果window 取值为offset,则表示每个窗口的时间周期,此时每个窗口的宽度随着窗口内的观测值变化。...仅当index 为datetimelike 时,这个参数才起作用,并且是在0.19.0版本才有的参数。 min_periods : 最小周期数,类型 int,默认为 None....axis : int 或 str 类型, 默认为 0 closed : str 类型, 默认为 None 控制窗口区间端点的闭合情况,取值为right(仅包括右端点), left(仅包括左端点), both...,默认只包括右端点,比如09:00:05秒时,时间窗的取值:(01, 05],求和为3.

    8.7K30

    收藏 | 提高数据处理效率的 Pandas 函数方法

    02 pandas.get_dummies() 在上面的例子当中,我们对离散值进行了编码,编码的结果有大小的意义,例如针对尺码的离散值:【X,XL,XXL】我们映射出来的结果是{X: 1,XL: 2,XXL...所谓独热编码,就是将离散型特征的每一种取值都看成一种状态,若某一个特征当中有N个不相同的取值,则我们就可以将该特征抽象成N中不同的状态。...而在“Pandas”模块当中有相应的方法来实现上面的功能: pd.get_dummies(df['room_type']) ## 参数prefix: 给输出的列添加前缀 ##     drop_first...在这个过程当中我们把连续的年龄分成三个类别,“少年”、“青年”、和“壮年”就是各个类别的名称或者叫做是标签。在“Pandas”模块当中也有相对应的方法来实现分箱操作。...() 数据集当中存在的重复值可能会对机器学习以及深度学习的模型造成不好的影响,当遇到这样的情况的时候,我们使用“pandas”模块当中的“drop_duplicates”的方法来去除重复值,我们先人为的制造一些重复值出来

    93320

    Pandas_Study02

    pandas 数据清洗 1. 去除 NaN 值 在Pandas的各类数据Series和DataFrame里字段值为NaN的为缺失数据,不代表0而是说没有赋值数据,类似于python中的None值。...interpolate() 利用插值函数interpolate()对列向的数据进行填值。实现插值填充数据,那么要求这列上必须得有一些数据才可以,至少2个,会对起点和终点间的NaN进行插值。...take 34 35 36 37 600.000000 NaN gake NaN NaN 700 NaN 600.000000 NaN df.interpolate() """ 可以看出,当待填充的列或行符合条件时...和course表右外连接choose表结果一致,但choose表的数据显示在前 print choose.merge(course, how = "left") # 和course 左外连接 choose...:", n, "\n|",g,"|" # 查看组名和 每组的数据信息 for n,_ in dg: print "group_name:", n, "\n|",dg.get_group(n),

    1.7K10

    Python编程:Pandas详解

    pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。...pandas安装 pandas安装指令: pip install pandas pandas中数据结构Series和DataFrame pandas中主要有两种数据结构,分别是:Series和DataFrame...R2 1.824115 -1.213599 空数据处理 我们已经知道,pandas是基于numpy的,numpy对某个位置处的数据不存在时用NaN来进行标记。...数据的导出和导入,支持多种格式csv、json、html等等,如下图: 导出选项 我们此处只随便选取2种举例,示例如下: import pandas as pd # 数据的导出和导入 left

    24210

    Pandas

    经过多年不懈的努力,Pandas 离这个目标已经越来越近了。 虽然 pandas 采用了大量的 NumPy 编码风格,但二者最大的不同是 pandas 是专门为处理表格和混杂数据设计的。...pd 整数标签的索引是基于标签的,也就是说我们不能像列表一样使用 DataFrame[-1]进行访问(仅针对整数作为索引的情况) 切片访问方法 DataFrame.loc[]访问 访问时主要采用[行索引或者条件...分组后的对象其实可以视作一个新的 df 或者 se(SeriesGroupBy object),名字即为分组键的值(如果是通过传递函数进行分组那么索引值就是函数的返回值),当数据集比较大时,我们有时候只希望对分组结果的部分列进行运算...GroupBy object.sum()——返回每组的和。 GroupBy object.mean()——返回每组的均值。 GroupBy object.std()——返回每组的标准差。...[a > np.mean(a)] = None print(a) 转换数据–哑变量处理(Index/dummy Variables) 当特征为分类型时,例如职业、学历、血型、疾病严重程度等等,通常会将原始的多分类变量转化为数值型

    11K31

    Python与Excel协同应用初学者指南

    数据就是石油 当启动任何直接或间接处理数据的项目时,首先要做的就是搜索数据集。...这种从单元格中提取值的方法在本质上与通过索引位置从NumPy数组和Pandas数据框架中选择和提取值非常相似。...但是使用Openpyxl时,除了指定要从中提取值的索引外,还需要指定属性.value,如下所示: 图12 如你所见,除了value属性外,还有其他属性可用于检查单元格,如row、column和coordinate...很多人可能会觉得这是一种非常困难的处理这些文件的方法,当还没有研究如何操作数据时,这肯定会更加复杂。 但别担心,有一个更简单的方法。 数据框架来了。...除了Excel包和Pandas,读取和写入.csv文件可以考虑使用CSV包,如下代码所示: 图30 数据的最终检查 当数据可用时,通常建议检查数据是否已正确加载。

    23.3K20

    气象处理技巧—时间序列处理2

    当然,我还是才刚刚才探讨这个方向,肯定有些贻笑于方家的地方,希望和大家一起讨论学习。...loc是xarray基于pandas的loc语句进行开发的,所以完全遵循pandas的loc语句的规则,loc语句拥有两种确定取值范围的方法,一是以内部存放值为单位进行取值,二是以一个布尔值表确定取值,...,当两个对应位置的逻辑值都为真时,才返回真,其余全假。...,我们要求仅返回11、12月的数据,又怎么进行呢,显然切片法解决不了,下面引入xarray继承pandas的isin方法。...举个例子,现在有1959-12-29,假定我需要一个最近的数据来代替这一日的数据,则可以通过sel来实现,默认情况下sel的该参数为None,这时因为时间序列里没有和1959-12-29一致的将会报错,

    1.4K11

    pandas中的数据处理利器-groupby

    ,通过groupby方法,首选根据x标签的内容分为a,b,c3组,然后对每组求均值,最后将结果进行合并。...groupby函数的返回值为为DataFrameGroupBy对象,有以下几个基本属性和方法 >>> grouped = df.groupby('x') >>> grouped pandas.core.groupby.generic.DataFrameGroupBy...>>> len(grouped.groups) 3 # get_group方法可以获得每个group对应的数据框 >>> grouped.get_group('a') x y 0 a 2 1 a...分组过滤 当需要根据某种条件对group进行过滤时,可以使用filter方法,用法如下 >>> df = pd.DataFrame({'x':['a','a','b','b','c','c'],'y':...汇总数据 transform方法返回一个和输入的原始数据相同尺寸的数据框,常用于在原始数据框的基础上增加新的一列分组统计数据,用法如下 >>> df = pd.DataFrame({'x':['a','

    5K10

    整理总结 python 中时间日期类数据处理与类型转换(含 pandas)

    pandas可能是我最高频使用的库,基于它的易学、实用,我也非常建议朋友们去尝试它。——尤其当你本身不是程序员,但多少跟表格或数据打点交道时,pandas 比 excel 的 VBA 简单优雅多了。...,得到 13位时间戳,int c = int(a * 1000) # 1569642653104173,得到 16位时间戳,int d = int(a * 1000000) 接下来,了解一下时间戳和人类易读的时间之间的转换...二、datetime 模块 datetime获取到的时间数据是非常易读的,在和人交互时,比 time 更好用一些。我通常把 datetime 用于以下 2 个场景。...三、pandas 中的时间处理 我写这篇笔记,本就是奔着精进 pandas 来的,前面花了很大篇幅先整理了time和datetime这些基础功,现在进入重头戏,即 pandas 中与时间相关的时间处理。...对整列每个值做上述匿名函数所定义的运算,完成后整列值都是字符串类型 pd.to_datetime() 把整列字符串转换为 pandas 的 datetime 类型,再重新赋值给该列(相当于更新该列)

    3.1K10

    7步搞定数据清洗-Python数据清洗指南

    可能会存在有标点符号掺杂/大小写不一致/空格重复出现等问题 6)消灭空值:CustomerID、Description、Country和UnitPrice都出现了NaN值,需要去掉 于是下面就开始后续的数据清洗...日期调整前(为求简便这里用已经剔除分秒,剔除的办法后面在格式一致化的空格分割再详细说) #数据类型转换:字符串转换为日期 #errors='coerce' 如果原始数据不符合日期的格式,转换后的值为空值...小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00-59) %S 秒(00-59) ?...⚠️一定要旧列名放在冒号前 #每组对应关系以[逗号]隔开 salesDf.rename(columns = colNameDict,inplace=True) ?...axis=0, how='any', thresh=None, subset=None, inplace=False) # 默认(axis=0)是逢空值剔除整行,设置关键字参数axis=1表示逢空值去掉整列

    5.5K20

    数据导入与预处理-第5章-数据清理

    、合法性和一致性等特点。...keep:表示采用哪种方式保留重复项,该参数可以取值为’first’(默认值)、 'last '和 ‘False’,其中’first’代表删除重复项,仅保留第一次出现的数据项;'last '代表删除重复项...’first’(默认值)、 'last ‘和’False’,其中’first’代表删除重复项,仅保留第一次出现的数据项;'last '代表删除重复项,仅保留最后一次出现的数据项;'False’表示删除所有的重复项...在计算数据集的四分位数时,除了要先对数据集排序外,还要根据其中数据的总数量选择不同的计算方式:当数据的总数量为偶数时,数据集被中位数划分为个数相等(每组有n/2个)的两组数,其中第一组数的中位数为Q1,...第二组数的中位数为Q3;当数据的总数量为奇数时,中位数会将数据集划分为个数相等(每组有 (n-1)/2 个)的两组数,其中第一组数的中数为Q1,第二组数的中数为Q3。

    5.7K20

    案例实战 | Python 玩转 AB 测试中的分层抽样与假设检验!(附代码和数据集)

    A/B 测试用于测试网页的修改效果(浏览量,注册率等),测试需进行一场实验,实验中控制组为网页旧版本,实验组为网页新版本,实验还需选出一个指标来衡量每组用户的参与度,然后根据实验结果来判断哪个版本效果更好...from mysampling import get_sample # df: 输入的数据框 pandas.dataframe 对象 # sampling:抽样方法 str ## 可选值有 ["simple_random...","stratified","systematic"] ## 按顺序分别为: 简单随机抽样、分层抽样、系统抽样 # stratified_col: 需要分层的列名的列表 list,只有在分层抽样时才生效...## 如果 k >=1, 则 k 表示抽样的个数;当为分层抽样时,代表每层的样本量 data =get_sample(df=course, sampling='stratified',...,以便解释天/周/季度事件引起的行为变化; 转化率需具备现实指导意义(推出新元素的开支 vs 转化率提高带来的效益); 对照组和实验组的测试对象要有一致性(两组样本数失衡会造成辛普森悖论等现象的发生)。

    2.2K10

    一文介绍Pandas中的9种数据访问方式

    导读 Pandas之于日常数据分析工作的重要地位不言而喻,而灵活的数据访问则是其中的一个重要环节。本文旨在讲清Pandas中的9种数据访问方式,包括范围读取和条件查询等。 ?..."访问 切片形式访问时按行进行查询,又区分数字切片和标签切片两种情况:当输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即无需切片首末值存在于标签列中),包含两端标签结果,无匹配行时返回为空...切片类型与索引列类型不一致时,引发报错 2. loc/iloc,可能是除[]之外最为常用的两种数据访问方法,其中loc按标签值(列名和行索引取值)访问、iloc按数字索引访问,均支持单值访问或切片查询...4. isin,条件范围查询,一般是对某一列判断其取值是否在某个可迭代的集合中。即根据特定列值是否存在于指定列表返回相应的结果。 5. where,妥妥的Pandas仿照SQL中实现的算子命名。...8. get。由于DataFrame可看做是嵌套dict结构,所以也提供了类似字典中的get()方法,主要适用于不确定数据结构中是否包含该标签时,与字典的get方法非常类似: ? 9. lookup。

    4.9K30

    一文了解类别型特征的编码方法

    本文将主要介绍一些处理这种类别型特征的方法,分别来自 pandas 和 sklearn 两个常用的 python 库给出的解决方法,这些方法也并非是处理这类特征的唯一答案,通常都需要具体问题具体分析。...加载数据后,这里我们仅关注类别型特征,也就是 object 类型的特征,这里可以有两种方法来获取: 方法1:采用 pandas 提供的方法 select_dtypes: df2 = df.select_dtypes...Pandas 的 get_dummies 首先介绍第一种--Pandas 的 get_dummies,这个方法使用非常简单了: ?...此外,采用 OneHotEncoder 的一个好处就是可以指定特征的维度,这种情况适用于,如果训练集和测试集的某个特征的取值数量不同的情况,比如训练集的样本包含这个特征的所有可能的取值,但测试集的样本缺少了其中一种可能...,那么如果直接用 pandas 的get_dummies方法,会导致训练集和测试集的特征维度不一致了。

    1.5K31

    【呕心总结】python如何与mysql实现交互及常用sql语句

    2、在 python 脚本中,我采用 pymysql 和 sqlalchemy 这两个库与 mysql 建立连接,用 pandas 来处理数据。...quesition_id) + '";' # 提交指令 cursor.execute(sql_insert) cursor.execute(sql_update) conn.commit() # 插入一行数据;仅当该数据与表格已有数据不重复时才插入...列的属性包括:类型,最大长度,是否为空,默认值,是否重复,是否为索引。通常,直接通过 pandas 的 pd.io.sql.to_sql() 一次性创建表格并保存数据时,列的默认属性并不合需求。...如果把【条件】部分不写,就相当于修改整列的值;想要修改特定范围,就要用到条件表达式,这和前面的查询部分是一致的,就不再重复。 数据的删除,对于新手来说,是必须警惕的操作。因为一旦误操作,你将无力挽回。...其基本语句为: DELETE FROM table_name【条件】; 想要修改特定范围,就要用到条件表达式,这和前面的查询部分也是一致的,稍微啰嗦两句:不要对自己设定的条件太自信,最好先用搜索语句检查一下

    3.6K21

    DataFrame和Series的使用

    DataFrame和Series是Pandas最基本的两种数据结构 可以把DataFrame看作由Series对象组成的字典,其中key是列名,值是Series Series和Python...传入的是索引的序号,loc是索引的标签 使用iloc时可以传入-1来获取最后一行数据,使用loc的时候不行 loc和iloc属性既可以用于获取列数据,也可以用于获取行数据 df.loc[[行],[列]...[:,[0,2,4,-1]] df.iloc[:,0:6:2] # 所有行, 第0 , 第2 第4列 可以通过行和列获取某几个格的元素 分组和聚合运算 先将数据分组 对每组的数据再去进行统计计算如...,求平均,求每组数据条目数(频数)等 再将每一组计算的结果合并起来 可以使用DataFrame的groupby方法完成分组/聚合计算 df.groupby(by='year')[['lifeExp','...对象就是把continent取值相同的数据放到一组中 df.groupby(‘continent’)[字段] → seriesGroupby对象 从分号组的Dataframe数据中筛序出一列 df.groupby

    1.8K10
    领券