学习笔记5 pandas

【第6章】1、pandas读取文件(sep分隔符,header列名,skiprows跳行、na_values缺失值) 1、pandas的解析函数 2、函数参数(read_csv、read_table) 3、分隔符(sep) 4、设置列名(header、names) 5、跳行(skiprows) 6、处理缺失值(na_values) 阅读详情

一、创建对象

1、导入pandas库和numpy库

import numpy as np
import pandas as pd

2、导入CSV或者xlsx文件

df = pd.DataFrame(pd.read_csv(‘name.csv’,header=1))
df = pd.DataFrame(pd.read_excel(‘name.xlsx’))

1.CSV文件
读操作:

import pandas as pd
pd.read_csv(path="",sep=",",header=None,index_col="",skiprows=[0,2,4])

path表示路径、sep表示分隔符、header表示是否显示头部信息、index_col表示建立索引(其中:index_col='message '将message列定义为索引,index_col=[“a”,“b”] 建立多层索引)、skiprows=[0,2,4] 表示跳过0,2,4行数据。

写入操作:

df.to_csv()

2.xlsx文件
读操作:

pd.read_excel('examples/ex1.xlsx', 'Sheet1')

写入操作:

df.to_excel("excel_name.xlslx","sheet_name")

3、创建对象

1.创建Series
Series是一维数据结构每一个元素都带有一个索引,与一维数组的含义相似,其中索引可以为数字或字符串。

import pandas as pd
# 方法一:创建series(通过数据创建)
pd.Series(["a","b","c","d"])
# 方法二:创建series(通过字典创建)
dict = {"a":"python","b":"java","c":"php"}
pd.Series(dict)
# 方法三:创建series(通过自定义index创建)
pd.Series(["java","php","python","jsp"],index=["a","b","c","d"])

索引可指定,但数量必须相对应

基本属性、操作、方法

ser_data = pd.Series(["java","php","python","jsp"],index=["a","b","c","d"])
# 获取series的索引
ser_data.index
# 获取series的值
ser_data.values
# 通过索引取值
ser_data["a"]
ser_data[["a","b"]]
# 判断是否有缺失值
ser_data.isnull()
ser_data.notnull()

Series也有where方法,但结果不同

2.创建DataFrame
DataFrame是一种二维数据结构,数据以表格形式(与excel类似)存储,有对应的行和列。
可以自定义索引名称和列名,同样也可以使用字典类型创建

import pandas as pd
import numpy as np
t=pd.DataFrame(np.arange(12).reshape(3,4))

t1=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("wxyz"))

d1={"name":["xiaoming","xiaogang"],"age":[20,32],"tel":[10086,10010]}

d2=[{"name":"xiaohong","age":32,"tel":10010},{"name":"xiaogang","age":20},{"name":"xiaoming","tel":10086}]

from pymongo import MongoClient
import pandas as pd

client=MongoClient()
collection=client["douban"]["cvl"]
data=list(collection.find())

for i in data:
    temp={}
    temp["info"]=i["info"]
    temp["rating_count"]=i["rating"]["count"]
    temp["rating_value"]=i["rating"]["value"]
    temp["title"]=i["title"]
    temp["country"]=i["country"]
    temp["directors"]=i["directors"]
    temp["actors"]=i["actors"]
    data_list.append(temp)
#得到比较干净的数据

基本属性、操作、方法

t2.index
t2.values
# 显示前五行/后五行
df.head()/df.tail()
# 获取某列的值名
df.columns
t2.shape
t2.dtypes
t2.ndim
# 获取某列的值
df["a"]
df.a
df1[["a","b"]]  # 选取多列
# 根据轴标签索引
df.loc["one":"three"]
# 根据整数索引
df.iloc[0:1]
# 获取某几行几列
df1.iloc[[0,2],[1,2]]

维度
DataFrame整体情况查询

#显示头几行
print(t2.head(2))
print("*"*10)
print(t2.tail(2))
print("*"*10)
#显示t2的概览
print(t2.info())
print("*"*10)
#快速统计数字类型列的信息
print(t2.describe())
#dDAtaFrame中排序的方法  (某一列)
df.sort_values(by="..",#ascending=False) 
print(df#.head(5))     #升序排序    #降序排序
            #取前五行

DataFrame的取行或取列

#取前二十行
print(df[:20])
print(df[:20]["R.."])    #具体某一列
#pandas取行或取列的注意点
      #方括号写数字,表示取行,对行进行操作
      #写字符串,表示的是取索引列,对列进行操作
print(type(df["R.."]))    #类型为Series

二、查看数据

1、维度查看:
df.shape

2、数据表基本信息(维度、列名称、数据格式、所占空间等):
df.info()

3、每一列数据的格式:
df.dtypes

4、某一列格式:
df[‘B’].dtype

5、空值:
df.isnull()

6、查看某一列空值:
df.isnull()

7、查看某一列的唯一值:
df[‘B’].unique()

8、查看数据表的值:
df.values

9、查看列名称:
df.columns

10、查看前10行数据、后10行数据:
df.head() #默认前10行数据
df.tail() #默认后10 行数据

11、显示索引、列和底层的numpy数据:
df.inndex
df.columns
df.values

12、 describe()函数对于数据的快速统计汇总:
df.describe()

13、对数据的转置:
df.T

14、按轴进行排序:
df.sort_index(axis=1,ascending=False)

15、按值进行排序:
df.sort(columns=‘B’)

三、读取外部数据

import pandas as pd

#pandas读取csv中的文件
df=pd.read_csv("...")
print(df)

#读取mysql中的数据
pd.resd_sql(sql_sentence.connection)

#读取mongdb中的数据 
from pymongo import MongoClient
import pandas as pd

client=MongoClient()
collection=client["douban"]["tvl"]
data=list(collection.find())

t1=data[0]
t1=pd.Series(t1)
print(t1)

四、Pandas之loc

  1. df.loc通过标签索引行数据
  2. df.iloc通过位置获取行数据
t3=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("wxyz"))
t3.loc["a","z"]

五、pandas之布尔索引

#想要得到所有的。。。大于800的且小于1000的
df[df[“C…”]>800]&df[df[“C…”]<1000 ]
#且:&
#或 :|

缺失数据的处理

数据缺失:
1.空,None 在pandas是NaN(和np.nan一样)
2.0 (并不是所有0都是数据缺失,有的有意义)
处理方法:
1.删除

[python]pandas读取文件时常用参数 读取csv文件用函数 pd.read_csv()1.pd.read_csv(filepath_or_buffer = 文件路径) 需要指定读取文件的路径2. pd.read_csv(encoding='gbk') 指定的编码格式3.pd.read_csv(sep=',') sep是表示数据是以什么分割 默认的是逗号4.pd.read_csv(skiprows='1') 跳过第几行开始读取,现在是从第二行开始读取数据5.pd.read_csv(nrows= '15) 表示只读取前15行的数据6.pd 阅读详情

相关推荐

【学习笔记】《深入浅出Pandas》第5章:Pandas高级操作

学习笔记

weixin_43894455的博客 2336

数据分析三件套Pandas

基础的数据分析必备知识点

qq_43147591的博客 1813

pandas使用read_csv读取数据使用skiprows参数跳过指定的数据行但保留表头、pandas使用to_csv函数将dataframe保存为gzip压缩文件

pandas使用read_csv读取数据使用skiprows参数跳过指定的数据行但保留表头、pandas使用to_csv函数将dataframe保存为gzip压缩文件

data+scenario+science+insight 4767

pandas.read_csv读取文件之skiprows用法

如图是一个以问号为分割符的数据,而且第1,2行和尾行还是脏数据 读取代码如下: 如果不加参数skiprows的话会报错,可以看出这是16*2的数据,如果想要去除多几行,如下图,在列表里添加你想要删除的哪几行,不支持切片[0:2]或者[0,1,3:6]: 也可以连续跳很多行,如下图: 不过这样的话需要重新设置行索引和列索引 有不足之处恳请指出,欢迎大家一起交流哈。 ...

weixin_44936542的博客 5万+

PyQt5学习笔记(10) PyQT5 QTableView + pandas 读写excel

1. 在qtcreater中新建一个mainwindow,添加一个工具栏,在ActionEdit中添加两个action,拖放到工具栏中。 再添加一个tableview。 2. 在QMyWindow中给tableview添加一个modle,再给两个工具栏按钮添加槽 self.model = QStandardItemModel(10,10,self) self.ui.tab...

dailinqing1984的博客 6655

miRNA测序数据生信分析——第一讲,总结概述

这里的miRNA测序指转录水平的测序。这里每一个数据库都可以在线访问,但是如果要本地使用,都需要进行数据库文件下载,整理。

weixin_44616693的博客 4953

Pandas学习笔记5——合并

Task05:合并(2天) Pandas基础合并一、append与assign1. append方法(a)利用序列添加行(必须指定name)(b)用DataFrame添加表2. assign方法该方法主要用于添加列,列名直接由参数指定:可以一次添加多个列:二、combine与update1. comine方法comine和update都是用于表的填充函数,可以根据某种规则填充(a)填充对象可以看...

qq_42662568的博客 802

HDMI端口辐射(EMI)超标解决方案

HDMI端口辐射(EMI)超标解决方案 一、HDMI EMC设计要求: 1、HDMI EMC设计原理图 ( 图 一 ) 2、HDMI元件选型及参数说明:(图一所示) a.L510、L511、L512、L513使用专业EMI共模滤波器(普通共模电感寄生电容太大,会导致TMDS差分阻抗匹配测试失败),阻抗值为90Ω~100Ω(两路共模滤波器型号:CMF1210DH900MFR;四路共模滤波器型号:CMF2010DH101MFR), b.U1、U2为排式ESD(ESD排型号:ESD0524PA),越低的结电容

ltqdxl的博客 1万+

Pyqt5学习笔记:Pandas

pyqt5 pandas

weixin_51303362的博客 1036

空地多无人平台协同路径规划复现:从建模到Matlab仿真全解析

路径规划是机器人领域的核心基础技术,从单机避障到多平台协同,问题复杂度显著提升。空地协同规划融合无人机与无人车的异构优势,通过将地图分层建模为空中与地面栅格,并采用A*算法生成初始路径、B样条平滑以及改进遗传算法进行任务分配与时间同步优化,能够有效处理几何约束、运动学约束和避碰约束等。该技术广泛应用于区域巡逻、目标搜索、物资转运等任务场景,也是高校论文复现和工程仿真的常见课题。本文从问题建模、算法设计到Matlab代码结构,系统梳理了一套空地多无人平台协同路径规划的复现思路,同时给出坐标系校准、遗传算法收敛

weixin_32175665的博客 250

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

5.29学习笔记(pandas)

附加行(append) import pandas as pd df = pd.DataFrame([[1,2],[3,4]],columns=['a','b']) df2 = pd.DataFrame([[5,6],[7,8]],columns=['a','b']) df=df.append(df2) print(df) 结果: a b 0 1 2 1 3 4 0 5 6 1 ...

weixin_43621813的博客 463

单目标跟踪算法及其复现过程---SiamFC(一)

在test.py文件中,就是利用训练出来的模型进行测试,需要更改预训练模型的路径,测试集的路径,以OTB100为例,最后输出的是对每一帧目标位置的坐标点。代码如下:首先需要下载got10k官方库,只需要在终端输入(注意:在终端安装各种库的时候不能使用网络代理),在环境已经配置到的情况下,只需要该其中的路径和就可以运行。这个系列博客仅为了记录各目标跟踪算法的复现(大多为跑通大佬们实现的代码),包括其中出现的很多问题和错误,学到的新知识等等。解决,而且只使用在线的方法,限制了他们可以学习的模型的丰富性。

weixin_58244117的博客 4762

5.23学习笔记(pandas)

pandas数据结构:系列,数据帧,面板。较高维数据结构是其较低维数据结构的容器 |数据结构 |维数 |描述 |系列|1|1D标记均匀数组,大小不变 |数据帧 |2 |一般2D标记,大小可变的表结构与潜在的异质类型的列 |面板|3|一般3D标记,大小可变数组 ...

weixin_43621813的博客 191

数据服务:数据服务框架Magic-API 介绍及实践

接口快速开发框架 基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 。在线页面快速开发平台 基于 vue 的在线页面快速开发平台,主要把所有的 vue 代码都改为在线配置,最终获得一个 json 格式的页面新一代爬虫平台 基于Java实现的新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。今天给大家安利一

GIS摆渡人 2063

机械式激光雷达实现原理以及特性总结

本文介绍了机械式激光雷达的技术原理和核心特性。该技术通过机械旋转结构实现360°三维扫描,采用飞行时间法测距并生成点云数据。核心优势包括全向扫描、长距高精度和成熟度高,但存在体积大、成本高、可靠性受限等局限。典型应用于自动驾驶测试车、测绘建模等领域。与固态激光雷达相比,机械式在视场角和探测距离方面有优势,但在体积、成本和可靠性方面处于劣势。该技术目前主要应用于对成本不敏感的专业场景。

start_up_go的博客 262

5.4学习笔记(pandas)

通过轴排序 import pandas as pd import numpy as np dates=pd.date_range('20190301`,periods=6) df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD')) print(df.sort_index(axis=1,ascending=Fal...

weixin_43621813的博客 133

YOLOv8安防监控实战:跌倒/闯入/徘徊实时检测(附TensorRT加速+声光报警部署代码)

精准性:针对跌倒/闯入/徘徊的行为特征优化,准确率达89.3%,误报率低于5次/天;实时性:TensorRT加速到50+FPS,报警延迟<1秒,满足安防“黄金响应时间”;低成本:无需专用AI芯片,RTX 3060或Jetson Orin就能跑,硬件成本比传统方案低60%;易部署:代码全开源,提供从模型训练到硬件联动的完整流程,2天即可搭起原型系统。如果你的安防监控还在“漏报误报”“响应慢”,建议先从跌倒检测的姿态过滤改起——用100张样本测试,再集成TensorRT加速,90%能看到明显改善。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 680

5.31学习笔记(pandas)

pandas_profiling 数据预览要点: i.类型,唯一值,缺失值 ii.分位数统计量:最小值,Q1,中位数,Q3,最大值,范围,四分位数范围 iii.描述性统计数据:均值,模式,标准差,总和,中位数绝对偏差,变异系数,峰度,偏度 iv.相关性突出高度相关变量:Spearman与Pearson系数矩阵 探索性数据分析:对已有的(特别是调查或观察得来的原始数据)在尽量少的先验假定下进行探索,...

weixin_43621813的博客 281

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

5.30学习笔记(pandas)

协方差 Series对象有一个方法cov用来计算对象之间的协方差,NA将被自动排除 import pandas as pd import numpy as np s1 = pd.Series(np.random.randn(10)) s2 = pd.Series(np.random.randn(10)) print(s1.cov(s2)) 应用于dataframe时,计算所有列之间的协方差cov...

weixin_43621813的博客 204

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Pandas学习笔记5 合并——Datawhale组队学习

joyful-pandas/第5章 合并.ipynb 感觉如果对数据库操作比较熟悉的话,这部分理解起来就会很容易。 append #利用序列添加行(必须指定name) s = pd.Series({'Gender':'F','Height':188},name='new_row') df_append.append(s) #用DataFrame添加表¶ df_temp = pd.DataFr...

probie的博客 285

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Pandas库学习笔记(5) Pandas中Series和DataFrame数据类型的运算

参考链接: Python数据分析与展示 参考链接: Pandas官网 参考链接: User Guide 参考链接: Getting started tutorials

敲代码的小风 335

Python pandas(DataFrame)学习笔记5

exam_data = {'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1], 'name': ['Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'], 'qu...

夏夜蒲扇的博客 309

Numpy & Pandas (莫烦 Python 数据处理教程)-Pandas学习笔记(5)-Pandas合并

Pandas学习笔记(5)-Pandas合并 df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d']) df2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d']) df3 = pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d']) print(df1) print(df2) print(df3) #out:

weixin_41281151的博客 285

pandas1.0.5学习笔记(七)文本数据

pandas1.0.5学习笔记(七)文本数据数据及背景知识总结string类型的性质拆分与拼接替换子串匹配与提取常用字符串方法问题1.str对象方法和df/Series对象方法有什么区别?2.给出一列string类型,如何判断单元格是否是数值型数据?3.rsplit方法的作用是什么?它在什么场合下适用?4.在本章的第二到第四节分别介绍了字符串类型的5类操作,请思考它们各自应用于什么场景?练习练习一练习二参考 数据及背景 https://github.com/datawhalechina/joyful-pan

CNcorazon的博客 687

Pandas基础5.1|Python学习笔记

import numpy as np import pandas as pd df = pd.read_csv('./data/table.csv') df.head() Unnamed: 0 School Class ID Gender Address Height ...

PenguinAsHeathen 277
上一篇: 学习笔记4 seaborn库
下一篇: 爬虫 一些爬取图片时出现的错误
Neflibata_mo
博客等级 码龄6年 6粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值