目录

一、pandas是什么?

二、开始正式学习啦!!

1.基本数据类型

1.1认识Series(系列)

​1.2认识Dataframe(数据框)

2.访问DataFrame

2.1删除操作

2.2查询数据的方法

3. DataFrame常见操作

3.1排序

3.2数据文件的导入与导出

4.处理数据常见操作

4.1缺失值处理

4.2重复值的处理

4.3抽取数据

4.4数据合并

大体上的更新就这样子啦,还有一些函数没有补充上去,等哪天用到了 想起来了我又回来补嘿嘿。


​​​​​​​前言

博主是第一次写文章,也是非计算机的小白一枚,刚刚开始接触科研,希望以此记录一下学习过程。

如果有哪里不完全或者是不对的地方,希望各位能多多指正啦!


一、pandas是什么?

对于博主来说,pandas就像是一个工具,处理数据以及分析数据。

那如何学习pandas呢?

学好pandas首先你得对numpy有一定的了解。

                                                 基本数据类型
Series 一维结构,可以理解为竖起来的list
Dateframe 二维结构,可以理解为excel表格

二、开始正式学习啦!!

1.基本数据类型

1.1认识Series(系列)

先上段简单的代码!

import pandas as pd
s_1 = pd.Series([1,2,3,4,5,6,7]) #注意S必须要大写!!!

好了,这样我们就创建了一个简单的Series了,我们来看看它里面的内容

我们可以发现他的索引也就是index和他的值也就是value是一一对应的关系

那么可能有些人觉得这个索引不顺眼,那可不可以换呢?答案是当然可以了!

import pandas as pds_1 = pd.Series([1,2,3,4,5,6,7],index=['a','b','c','d','e','f','g'])

让我们看看效果!

 Series的属性

s_1.index
>>Index(['a', 'b', 'c', 'd', 'e', 'f', 'g'], dtype='object')
s_1.values
>>array([1, 2, 3, 4, 5, 6, 7])

 ’‘’查‘’‘

(1)通过标签
s_1['d']#访问的index为d
s_1[['a','d']]#访问的index为a和d
s_1[['a':'d']]#访问的index为a到d
(1)通过列表
s_1[0]
s_1[[0,4]]
s_1[[0:4]]

'''增删改'''

s_2 = pd.Series(['rose','lily'])
s_3 = pd.Series(['2'],index = ['d'])
s_3 = s_2.append(s_3)#s_2 s_3的数据类型得相同!!s_1.drop('a')s_2[0] = 'petter'

 ​1.2认识Dataframe(数据框)

可以简单理解为一个Excel表格,废话不多说!先上代码

import pandas as pd
df_1 = pd.DataFrame({'age':[10,11,12],'name':['Tim','jack','rose'],'income':[100,200,300]},index=['person1','person2','person3'])

让我们再来看看效果,是不是对理解有了更进一步的认识呢!

我们接下来看看它的属性吧!!

df_1.index
>>Index(['person1', 'person2', 'person3'], dtype='object')
df_1.columns
>>Index(['age', 'name', 'income'], dtype='object')
df_1.values
>>array([[10, 'Tim', 100],[11, 'jack', 200],[12, 'rose', 300]], dtype=object)

改名字 

#修改列名
df_1.columns = ['a','c','f']#字符型
df_1.columns = range(0,len(df_1.columns))#数字型
#精确修改
df_1.rename(columns={1:'hh'},inplace = True)

如果想改行名的话直接在把columns换成index就可以了!

来看看df_1变成什么样子了 ​​​​​​​

'''增加行or列'''

df_1['pay'] = [1,2,3]
df_1.loc['person4',[0,'hh',2,'pay']] = [13,'jimi',400,90]

效果

可以看出,以上都是在最后一行或者最后一列增加,那接下来我们来看指定位置增加

指定位置

DataFrameName.insert(loc,colums,value)
  • loc:是一个整数,我们要插入列的位置
  • column:是一个字符串,列名

 2.访问DataFrame

df_1.hh#访问列名为hh的
df_1[[0,2]]#访问第一列和第三列
df_1[0:2]#访问前三行
df_1.loc[['person1','person4']]#访问名字
df_1.loc['person1','hh']#访问特定的值

 2.1删除操作

data = df_1.drop('hh',axis=1,inplace = False)
#删除名字为hh的这一列,不会在原处修改
del df_1['hh']#删除名字为hh的这一列,直接在原数据修改
df_1.drop('person2',axis=0,inplace = True)
#删除名字为hh的这一行,会在原处修改

​​​​​​​

2.2查询数据的方法

先创建一个数据框

import pandas as pd
import numpy as np
datas = pd.date_range('20221001',periods = 5)
df = pd.DataFrame(np.arange(30).reshape(5,6),index = datas,columns = ['a','b','c','d','e','f'])

loc方法#标签索引

df.loc[index.columns] 
df.loc['20221003','b']#某个值
>>13
df.loc['20221004',['b','d']]#2个值
>>b    19d    21
Name: 2022-10-04 00:00:00, dtype: int64
df.loc[:,['b','d']]#所有行的b d列
>>           b   d
2022-10-01   1   3
2022-10-02   7   9
2022-10-03  13  15
2022-10-04  19  21
2022-10-05  25  27

iloc方法(位置索引)

df.iloc[2,1]
df.iloc[3,[1,3]]
df.iloc[:,[1,3]]

ix方法(混合索引)

在pandas版本0.20.0及其以后版本中,ix已经不被推荐使用,。这是为什么呢?这是由于ix的复杂特点可能使ix使用起来有些棘手:


3. DataFrame常见操作

3.1排序

import pandas as pddic = {'name':['kiti','beta','peter','tom'],'age':[20,18,35,21],'gender':["f","f",'m','m']}
df = pd.DataFrame(dic)#根据年龄排序
df = df.sort_values(by = ['age']) #升序
df = df.sort_values(by = ['age'],ascending = False)#降序#值替换
df['gender'] = df['gender'].replace(['m','f'],['male','fmale'])#重新排列数据中的列
colos = ['name','gender','age']
df = df.loc[:,colos]

3.2数据文件的导入与导出

import pandas as pd#读文件
df1 = pd.read_csv("file.csv",header = None)
df2 = pd.read_csv("file.xlxs",header = None)#导出文件
df1.to_csv("file.csv",index = False,header = True)

高能预警

4.处理数据常见操作

4.1缺失值处理

  • 进行逻辑判断并判断空值所在位置
na = df.isnull()
  • 找出空值所在行数据
df[na.any(axis = 1)]
  • 找出空值所在列数据
df[na[["列名"]].any(axis = 1)]
  • 填充缺失值
df = df.fillna('1')

4.2重复值的处理

result1 = df.duplicated()
#结果只有True和False,完全相同才是True
  • 找某列或者多列
result2 = df.duplicated(['列名'])
result3 = df.duplicated(['列名1','列名2'])
new_df1 = df.drop_duplicates #完全重复
new_df2 = df.drop_duplicates(['列1','列2'])#部分重复

4.3抽取数据

  • 比较
df[df['列1']>17000]
df[df['列1'].between(1500,19000)]
  • 字样匹配
df['name'].str.contains['apple',na=False]

4.4数据合并

  • “concat函数”

concat[df1,df2,......]

import pandas as pd
import numpy as np
df_1 = pd.DataFrame(np.arange(12).reshape(3,4))
df2 = df1*2#df2的数据的值是1的2倍横向
new_df1 = pd.concat([df_2,df_1])
竖向
new_df2 = pd.concat([df_2,df_1],axis = 1)

'''join'''   inner:交集 outer:并集

df3 =pd.DataFrame(np.arange(12).reshape(3,4),index = ['a','s','d'])
new_df3 = pd.concat([df_1,df_3],axis = 1,join = 'inner')
new_df3 = pd.concat([df_1,df_3],axis = 1,join = 'outer')

大体上的更新就这样子啦,还有一些函数没有补充上去,等哪天用到了 想起来了我又回来补嘿嘿。

Python之pandas库(万年一更版)相关推荐

  1. Python中pandas库实现数据缺失值判断isnull()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中pandas库实现数据缺失值判断 isnull()函数 ...

  2. Py之Pandas:Python的pandas库简介、安装、使用方法详细攻略

    Py之Pandas:Python的pandas库简介.安装.使用方法详细攻略 目录 pandas库简介 pandas库安装 pandas库使用方法 1.函数使用方法 2.使用经验总结 3.绘图相关操作 ...

  3. python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)

    很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...

  4. pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库

    第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.cs ...

  5. 学习 Python 之 Pandas库

    学习 Python 之 Pandas库 Pandas库 什么是Pandas库? DataFrame 创建和存储 1. 使用DataFrame构造函数 (1). 使用列表创建 (2). 使用字典创建 ( ...

  6. Python之Pandas库常用函数大全(含注释)

    前言:本博文摘抄自中国慕课大学上的课程<Python数据分析与展示>,推荐刚入门的同学去学习,这是非常好的入门视频. 继续一个新的库,Pandas库.Pandas库围绕Series类型和D ...

  7. 如何最简单、通俗地理解Python的pandas库?

    pandas是一个Python软件包,提供快速.灵活和富有表现力的数据结构,旨在使处理 "关系型 "或 "标签型 "数据变得简单和直观 这个解释是比较官方的. ...

  8. python 利用pandas库实现 读写 .csv文件

    最近在处理ILSVRC12数据集,有一个需求就是将图片路径和标签写入.csv文件中,这里我们用到了pandas库,当然也有不用pandas库的方法,这里不再介绍,因为pandas处理起来是真的香啊 1 ...

  9. 09 Python之Pandas库之数据处理与规整

    Pandas库之数据处理与规整 import numpy as np import pandas as pd import pandas_datareader.data as web import d ...

最新文章

  1. 湖北大数据采集平台的应用价值及领域,数道云
  2. 创业者必看:创业得出的10条血泪经验
  3. WinJS实用开发技巧(2):使用artTemplate打造对话列表
  4. 学习C++的五十个建议(转
  5. white-space详解
  6. 2020CCPC(威海) - Labyrinth(bfs+思维)
  7. python类的成员函数_注入一个python类成员函数
  8. Java NIO ———— Buffer 缓冲区详解
  9. 微软提出VLMo:用“模态混合专家”进行统一的视觉语言预训练!即将开源!
  10. Sentinel初始化监控_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0031
  11. usb耳机android,USB 耳机:配件规范  |  Android 开源项目  |  Android Open Source Project...
  12. SpringBoot 中 @Transactional 的使用
  13. Git for windows 配置
  14. GRUB 和 GRUB2 的区别
  15. Net硅谷动力网站 http://www.enet.com.cn/
  16. python量化投资19种方法_【Python量化投资】新手资源大合集
  17. linux中apache无法启动,Apache无法启动
  18. 【高级持续性威胁追踪】来自Mustang Panda的攻击? 我兔又背锅了!
  19. U-SEM体验模型——让游戏交互设计的维度更加清晰
  20. 世界十大高楼中国占6座 中东要建第一楼

热门文章

  1. python参数估计_最小二乘与最大似然参数估计及Python实现
  2. js 获取字符串长度方法length
  3. MapReduce 原理与实践
  4. MapReduce是什么,MapReduce概念
  5. 2022年玩具泡泡机市场前景分析及研究报告
  6. linux中进程与cpu核的绑定
  7. 超图对接伟景行osg数据使用说明
  8. android开发视频资源 电驴10G下载
  9. c语言有效的预处理命令,9、C语言之预处理命令(示例代码)
  10. SQL 左外连接,右外连接,全连接,内连接 4种连接的区别