1.Series和DataFrame
0.文件的导入和导出
① Excel
1.导入表格
df=pd.read_excel('1月.xlsx',sheet_name='莫寒')
不指定sheet则导入第一张
2.导入指定列
df1 = pd.read_excel('1月.xlsx', usecols=[0, 3]) #通过指定列索引号导入第0列、第3列
3.指定行列索引
df1=pd.read_excel('1月.xlsx',index_col=0) #设置“买家会员名”为行索引
df2=pd.read_excel('1月.xlsx',header=1) #设置第1行为列索引header = None则指定为数字
1.Series对象
①创建
s = pd.Series(data,index=)s2=pd.Series([88,60,75],index=['明日同学','高同学','七月流火'])
②访问
1. []里面放索引名或列表
print(s1['明日同学']) #通过一个标签索引获取索引值
print(s1[['明日同学','七月流火']]) #通过多个标签索引获取索引值
2.切片
s1['明日同学':'七月流火']
s1[1:4] 输出下标为1,2,3的
③两个属性
s1.index 获取索引
s1.values 获取值
2.DataFrame对象
①创建
1.二维列表创建
data = [[110,105,99],[105,88,115],[109,120,130],[112,115,140]]
name = ['明日','七月流火','高袁圆','二月二']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=name, columns=columns)
2.字典创建
df = pd.DataFrame({'语文':[110,105,99],'数学':[105,88,115],'英语':[109,120,130],'班级':'高一7班'
},index=[0,1,2])
键就是列名,只需指定行名index了
②重要属性和函数
④数据抽取
1.直接df[列名]
2.loc和iloc属性
前者列名行名,后者数字索引
第一个参数为行参数,第二个为列参数
print(df.loc[['明日','高袁圆']])
print(df.iloc[[0,2]]) #访问0和2行
同Series,[]里面放行索引名或者行索引名列表
print(df.loc['明日':'二月二']) #从“明日”到“二月二”
print(df.loc[:'七月流火']) #第1行到“七月流火”
print(df.iloc[0:4]) #第1行到第4行
print(df.iloc[1::]) #第2行到最后1行
注意,iloc[0:4]只有下标0,1,2,3的
print(df.iloc[1::,[0,2]]) #第2行到最后一行的第1列和第3列
print(df.iloc[:,2]) #所有行,第3列
两个参数也差不多
3.df.iat[,]选取某个坐标的数据
4.条件选取
print(df.loc[(df['语文'] > 109)])》》语文 数学 英语
明日 110 105 99.0
二月二 112 115 NaN
⑤数据增删改
1.增
①通过a["列名”],loc函数直接赋值
②或者
df.insert(1,"物理",[90,87,63])
③增加多行数据
df_insert = pd.DataFrame({'语文':[100,123,138],'数学':[120,142,60],'英语':[99,139,99]},index = ['钱多多','童年','无名'])
df1 = df.append(df_insert)
2.删
以下是删除两列,行类似
df1.drop(['数学',"语文"],axis=1,inplace=True)
3.改
①改行标列标
直接赋值,或者用rename函数,以下修改行,修改列同理
df.index=list('1234')
df.rename({'明日':1,'七月流火':2,'高袁圆':3,'二月二':4},axis=0,inplace = True)
②改数据
通过loc,iloc直接赋值
df.loc[:,'语文']=[115,108,112,118]
⑥数据清洗
1.缺失值
df.info()
df.isnull()
df.notnull()
处理:
①删除有缺失值的行,(只要该行有缺失值,就删除)
df.dropna(inplace=True)
②只删除特定列空值的行
df = df.loc[df["宝贝总数量"].notnull()]
③填充空值
df=df["宝贝总数量"].fillna(0) #此行错误,会出大问题
df["宝贝总数量"]=df["宝贝总数量"].fillna(0)
2.重复值
①检测该行是否与前面行完全相同,返回每行的布尔值
print(df.duplicated())
②删除重复行
print(df.drop_duplicates())
print(df.drop_duplicates(["宝贝标题"],keep="last")) #keep=False表示去除所有重复行
3.异常值
p = df > 100
print(p)
df = df.loc[p["英语"]]
print(df)》》语文 数学 英语
明日 110 105 99
七月流火 105 88 115
高袁圆 109 120 130
二月二 112 115 140语文 数学 英语
明日 True True False
七月流火 True False True
高袁圆 True True True
二月二 True True True语文 数学 英语
七月流火 105 88 115
高袁圆 109 120 130
二月二 112 115 140Process finished with exit code 0
p = df.std()
print(p["英语"])
⑦索引设置
1.series重设索引
之前的df.index = 实际上是索引重命名
from pandas import Series
s1=Series([88,60,75],index=[1,2,3])
print(s1)
s1=s1.reindex([1,2])
print(s1)》》
1 88
2 60
3 75
dtype: int64
1 88
2 60
dtype: int64
2.dataframe重设索引
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[110,105,99],[105,88,115],[109,120,130]]
index=['mr001','mr003','mr005']
columns = ['语文','数学','英语']
df = pd.DataFrame(data=data, index=index,columns=columns)
print(df)
print(df.reindex(index=['mr001','mr002','mr003','mr004','mr005'],columns=['语文','物理','数学','英语']))》》语文 数学 英语
mr001 110 105 99
mr003 105 88 115
mr005 109 120 130语文 物理 数学 英语
mr001 110.0 NaN 105.0 99.0
mr002 NaN NaN NaN NaN
mr003 105.0 NaN 88.0 115.0
mr004 NaN NaN NaN NaN
mr005 109.0 NaN 120.0 130.0
3.设置某列为行索引
df = df.set_index(["买家会员名"])
4.把不连续的索引重新设为连续
df=df.reset_index(drop = Ture)
⑧数据排序与排名
1.排序
df.sort_values(by=['图书名称','销量'],ascending=[True,True])
2.分组排序
df1=df.groupby(["类别"])["销量"].sum().reset_index()
df2=df1.sort_values(by='销量',ascending=False)
3.排名
顺序排名和平均值排名 (1,2,3)(1,2.5,2.5)
df['顺序排名'] = df['销量'].rank(method="first", ascending=False)
1.Series和DataFrame相关推荐
- pandas使用append函数在dataframe上纵向合并数据实战:多个dataframe合并、合并series左右dataframe的一样、合并字典数据作为dataframe的行
pandas使用append函数在dataframe上纵向合并数据实战:多个dataframe合并.合并series左右dataframe的一样.合并字典数据作为dataframe的行 目录
- pandas教程(一)Series与DataFrame
前言 如何学习:先随着小编看一下几个重要的函数方法,然后用实例加以巩固 预备知识:NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成:实际的数据.描述这些数据的元数据 此外小编为你准 ...
- 【Python】Python常用的Series 和 Dataframe处理方法
Series 和 Dataframe格式的数据处理工作,有很多常用的也比较巧妙的小方法,现总结下,方便理解应用. 本文会已方法基础格式+代码样例的形式加以讲解说明. 一 基础方法介绍 Series 和 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...
- pandas教程:series和dataframe
起步 pandas是一种Python数据分析的利器,是一个开源的数据分析包,最初是应用于金融数据分析工具而开发出来的,因此pandas为时间序列分析提供了很好的支持.pandas是PyData项目的一 ...
- python 重置索引_python pandas 对series和dataframe的重置索引reindex方法
reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行.且不会修改原数组,要修改需要使用赋值语句. series.reindex( ...
- Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象
CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...
- Series和DataFrame、相关性及NaN处理
pandas核心数据结构 pandas是以numpy为基础的,还提供了一些额外的方法 Series series用来表示一维数据结构,与python内部的数组类似,但多了一些额外的功能. series ...
- python pandas 排序_Pandas的排序和排名(Series, DataFrame) + groupby
根据条件对数据集排序(sorting)也是一种重要的内置运算.要对行或列索引进行排序(按字典顺序), 可使用sort_index 方法, 它将返回一个已排序的新对象: 而DataFrame, 则可以根 ...
- Python中的Series和DataFrame
by Shubhi Asthana 通过Shubhi Asthana Python中的Series和DataFrame (Series and DataFrame in Python) A coupl ...
最新文章
- BB84和B92协议
- 018_html文件路径
- mysql connector安装教程_通过安装MySQL Connector/Net实现VS2017 C#编程连接MySQL数据库-网络教程与技术
-亦是美网络...
- IMX6ULL的GPIO操作方法
- Android中的Fragment使用
- OpenGL中的Uniform block size 的大小限制
- 201706问题记录
- 程序员7天长假出游指南
- golang中base64编码_golang中自带base64编码和解码
- 最大化/最小化/关闭窗口代码集锦
- 亿级Web系统负载均衡几种实现方式
- Java 11 中 11 个不为人知的瑰宝
- 修复Ubuntu系列pip
- python装饰器模式带参数_Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列)...
- 蚂蚁金服测试开发实习面经
- 中国准货币体系的概要简析
- linux ubuntu 22.04卸载firefox火狐浏览器正确方式
- git stach储藏功能(SourceTree 使用方法,Visual studio 2019 中使用
- 【tkGo】将Excel里的图片链接替换为图片(Excel嵌入图片)
- 【写着玩】二维码检测及定位