NumpyPandas:pandas库的安装,不同对象的建立,文件的导入和了解数据

目录

前言

一、Pandas库的安装

二、不同对象的建立

1.Series对象的创建

1.用index方法指定索引

2.在创建的时候就指定索引

3.使用字典的方式创建

4.将一个常量与index一起传入创建

5.输出值和索引

2.DataFrame对象的创建

1.不指定列名则以键当列名 行索引为默认值

2.columns指定列名

3.指定索引名

4.打印索引,值和列名

三、读取文件

1.csv文件

2.txt文件

四、了解数据

1.head() 和 tail()

2.info()

3.shape

4.describe()


前言

Pandas 包是基于 Python 平台的数据管理利器,已经成为了 Python 进行数据分析和挖掘时的数据基础平台和事实上的工业标准。

 

一、Pandas库的安装

  • 按win+r打开命令提示符,输入cmd,按回车进入。输入下面的代码,安装pandas库和jupyter notebook库
  • 若安装不了或者pip想换源的可以看:python-快速上手爬虫-CSDN博客
pip install pandas
pip install jupyter notebook
  • 安装好了之后在pycharm的Terminal处输入:
  • c3007e9e39784f50a7b1f51ec761f4e0.png
jupyter notebook
  • 会跳转到网页打开jupyter,找到自己python代码所在的文件夹,再在右上角新建文件进行操作。

a08f40ebf84e4429ba25ad97465cb49a.png

 

二、不同对象的建立

先导入pandas和numpy库

import pandas as pd
import numpy as np

1.Series对象的创建

# 一维数组的创建
data = pd.Series([2,3,4,1,4,5])  
data = data.drop_duplicates()   # 对数据进行去重 
data                            # 系统会给一个默认的从0开始的索引

输出:

0    2
1    3
2    4
3    1
5    5
dtype: int64

 

1.用index方法指定索引

data = pd.Series([12,23,4,1,5,6])
data.index = [2,3,4,5,6,7]        # 用index方法指定索引
data

输出: 索引和数值位数必须对应,不然会报错

2    12
3    23
4     4
5     1
6     5
7     6
dtype: int64

 

2.在创建的时候就指定索引

# 在创建的时候就指定索引
data = pd.Series([13,4,5,6,6,7],index = [1,2,3,4,5,6])
data = data.drop_duplicates()    # 值查重
data1 = pd.Series([2,3,4,5,6,7],index = list('acbdds'))
data1 = data1[~data1.index.duplicated()]  # 行索引查重 无'~'就显示哪一行重复 有'~'就删除重复行 data,data1

输出:

(1    132     43     54     66     7dtype: int64,a    2c    3b    4d    5s    7dtype: int64)

 

3.使用字典的方式创建

  • 使用字典的方式创建
    # 使用字典的方式创建
    population_dict={'sh':2800,'bj':3000,'gz':1500,'sz':1200}
    pp=pd.Series(population_dict)    # 将字典转换成一维数组  键当索引 值当值
    pp

    输出:将字典转换成一维数组 ,键当索引,值当值

    sh    2800
    bj    3000
    gz    1500
    sz    1200
    dtype: int64

  • 传入由字典创建的数组 并且指定索引 取交集 不存在则输出NaN
    # 传入由字典创建的数组 并且指定索引 取交集 不存在则输出NaN
    ppp = pd.Series(pp,index = ['bj','xa','hf','sz'])   
    ppp

    输出:

    bj    3000.0
    xa       NaN
    hf       NaN
    sz    1200.0
    dtype: float64

 

4.将一个常量与index一起传入创建

# 将一个常量与index一起传入创建
data = pd.Series(10,index =list('abcd'))   # 数组中所有的值都是10    
data

输出:

a    10
b    10
c    10
d    10
dtype: int64

 

5.输出值和索引

2    12
3    23
4     4
5     1
6     5
7     6print(data.values)   # 输出数组的值
print(data.index)    # 输出数组的索引

输出:

[12 23  4  1  5  6]
Index([2, 3, 4, 5, 6, 7], dtype='int64')

 

2.DataFrame对象的创建

  • 可以被看做是由 Series 组成的字典
pp = pd.Series({'beijing':3000,'shanghai':1200,'guangzhou':1800})
area = pd.Series({'beijing':300,'tianjin':180,'guangzhou':200})   # 对两列数据的索引取并集 值不存在则为NaN
citys = pd.DataFrame({'area':area,'population':pp})     # 创建列名
citys  

输出:

	        area	population
beijing	    300.0	3000.0
guangzhou	200.0	1800.0
shanghai	NaN	    1200.0
tianjin	    180.0	NaN

 

1.不指定列名则以键当列名 行索引为默认值

population_dict={'beijing':3000,'tianjin':1200,'guangzhou':1800}
area_dict={'beijing':300,'shanghai':180,'guangzhou':200}
data=pd.DataFrame([population_dict,area_dict])  # 不指定列名则以键当列名 行索引为默认值 
data

输出:

	beijing	   tianjin	 guangzhou	shanghai
0	 3000	    1200.0	  1800	     NaN
1	 300	    NaN	      200	     180.0

 

2.columns指定列名

pp = pd.Series({'beijing':3000,'shanghai':1200,'guangzhou':1800})
pp1 = pd.DataFrame(pp,columns = ['population'])  # columns指定列名
print(pp1.loc['beijing'])  # 按行的索引取值
print(pp1.iloc[0])         # 按行的索引值取值
pp1

输出:

population    3000
Name: beijing, dtype: int64
population    3000
Name: beijing, dtype: int64population
beijing	    3000
shanghai	1200
guangzhou	1800

 

3.指定索引名

pp2 = pd.DataFrame([pp,area],index = ['population','area'])  # 指定索引名
print(pp2['beijing'])  # 取单列 
print(pp2[['shanghai','tianjin']]) # 取多列
pp2

输出:

population    3000.0
area           300.0
Name: beijing, dtype: float64shanghai  tianjin
population    1200.0      NaN
area             NaN    180.0beijing	  shanghai	guangzhou	tianjin
population	 3000.0	   1200.0	 1800.0	     NaN
area	     300.0	   NaN	     200.0	     180.0

 

4.打印索引,值和列名

	        area	population
beijing	    300.0	3000.0
guangzhou	200.0	1800.0
shanghai	NaN	    1200.0
tianjin	    180.0	NaNprint(citys.index)
print(citys.values)
print(citys.columns)   # 打印列名

输出:

Index(['beijing', 'guangzhou', 'shanghai', 'tianjin'], dtype='object')
[[ 300. 3000.][ 200. 1800.][  nan 1200.][ 180.   nan]]
Index(['area', 'population'], dtype='object')

 

三、读取文件

基本读的都是csv文件和txt文件

1.csv文件

  • 文件的路径:./表示同级目录下的文件;../表示上机目录下的文件
# 读文件 基本都是csv文件
# header = None 不把第一行读成列名   names 指定读取的列名
stu_df = pd.read_csv('./students.csv',header = None,names =['id','name','age','gender','clazz'])
stu_df

输出:太长的数据一般只会显示头尾五行

id	name	age	gender	clazz
0	1500100001	施笑槐	22	女	    文科六班
1	1500100002	吕金鹏	24	男	    文科六班
2	1500100003	单乐蕊	22	女	    理科六班
3	1500100004	葛德曜	24	男	    理科三班
4	1500100005	宣谷芹	22	女	    理科五班
...	...	...	...	...	...
995	1500100996	厉运凡	24	男	    文科三班
996	1500100997	陶敬曦	21	男	    理科六班
997	1500100998	容昆宇	22	男	    理科四班
998	1500100999	钟绮晴	23	女	    文科五班
999	1500101000	符瑞渊	23	男	    理科六班1000 rows × 5 columns

 

2.txt文件

  • 读取txt文件需要指定分隔符,文件里各列以相同的方式进行分隔
# 读取txt文件 需要指定分隔符 这里读取的是之前爬虫爬取的豆瓣小说的信息
book_df = pd.read_csv('./novel.txt',header=None,sep ='#',names=["book_name","price","y","publish","author","star"])

输出:

	book_name	    price	y	    publish	            author	            star
0	食南之徒	        56.00	2024-4	湖南文艺出版社	    马伯庸	            8.3
1	太白金星有点烦	45.00	2023-6	湖南文艺出版社	    马伯庸	            9.0
2	长安的荔枝	    45.00	2022-10	湖南文艺出版社	    马伯庸	            8.5
3	额尔古纳河右岸	32.00	2019-6	人民文学出版社	    迟子建	            9.1
4	活着	        20.00	2012-8	作家出版社	        余华	            9.4
...	...	...	...	...	...	...
193	庆余年·壹	    28.00	2008-7	中国友谊出版公司	    猫腻	            8.0
194	月亮和六便士	    15.00	2006-8	上海译文出版社	    [英] 毛姆/傅惟慈	    9.0
195	孤岛的来访者	    49.00	2023-4	新星出版社	        [日] 方丈贵惠/穆迪	7.8
196	安南想象	        78	    2024-5	上海文艺出版社	    朱琺	            8.6
197	黄金时代	        35.00	2017-4	北京十月文艺出版社   王小波	            8.7198 rows × 6 columns

 


四、了解数据

1.head() 和 tail()

  • head() 浏览前几条
    book_df.head(10)  # 浏览前几条

    输出:

    	book_name	        price	y	    publish	            author	                star
    0	食南之徒	            56.00	2024-4	湖南文艺出版社	    马伯庸	                8.3
    1	太白金星有点烦	    45.00	2023-6	湖南文艺出版社	    马伯庸	                9.0
    2	长安的荔枝	        45.00	2022-10	湖南文艺出版社	    马伯庸	                8.5
    3	额尔古纳河右岸	    32.00	2019-6	人民文学出版社	    迟子建	                9.1
    4	活着	            20.00	2012-8	作家出版社	        余华	                9.4
    5	明亮的夜晚	        52	    2023-8	台海出版社	        [韩]崔恩荣/叶蕾	        9.0
    6	绝叫	            58.00	2020-7	北京联合出版公司	    [日] 叶真中显/林佩瑾	    8.9
    7	秋园	            38.00	2020-6	北京联合出版公司	    杨本芬	                9.0
    8	最后一个死去的女孩   69.00	2024-4	北京联合出版公司	    [美] 哈里·多兰/仲召明	8.2
    9	十八岁出门远行	    45	    2024-3	江苏凤凰文艺出版社	余华	                7.4
  • tail()浏览最后几条
    book_df.tail(10)  # 浏览最后几条

    输出:

    	book_name	        price	y	    publish	        author	                    star
    188	小王子	            22.00	2003-8	人民文学出版社	[法] 圣埃克苏佩里	        9.1
    189	一桩事先张扬的凶杀案	25.00	2013-6	南海出版公司	    [哥伦比亚] 加西亚·马尔克斯	8.7
    190	请记得乐园	        59	    2024-4	人民文学出版社	那多	                    6.6
    191	未来学大会	        42.00	2021-8	译林出版社	    [波] 斯坦尼斯瓦夫·莱姆       9.0
    192	百年孤独	            55.00	2017-8	南海出版公司	    [哥伦比亚] 加西亚·马尔克斯	9.5
    193	庆余年·壹	        28.00	2008-7	中国友谊出版公司	猫腻	                    8.0
    194	月亮和六便士	        15.00	2006-8	上海译文出版社	[英] 毛姆/傅惟慈	            9.0
    195	孤岛的来访者	        49.00	2023-4	新星出版社	    [日] 方丈贵惠/穆迪	        7.8
    196	安南想象	            78	    2024-5	上海文艺出版社	朱琺	                    8.6
    197	黄金时代	            35.00	2017-4	北京十月文艺出版 王小波	                    8.7

 

2.info()

# 在pandas里可以将object看作是str
book_df.info()   # 查看各列的数据个数和数据类型 # 可以用来判断是否有空数据 例如star里的197 数据总数应为198 # 所以star里就有个空数据NaN

输出:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 198 entries, 0 to 197
Data columns (total 6 columns):#   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  0   book_name  198 non-null    object 1   price      198 non-null    object 2   y          198 non-null    object 3   publish    198 non-null    object 4   author     198 non-null    object 5   star       197 non-null    float64
dtypes: float64(1), object(5)
memory usage: 9.4+ KB

 

3.shape

book_df.shape    # 数据的维度 以及各维度的值

输出:数据的维度 以及各维度的值

(198, 6)

 

4.describe()

book_df.describe()  # 了解数据里数值的分布情况

输出:了解数据里数值的分布情况

        star
count	197.000000
mean	8.580203
std	    0.669575
min	    5.800000
25%	    8.200000
50%    	8.700000
75%	    9.100000
max	    9.700000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3269842.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop3.3.5的安装与单机/伪分布式配置

文章目录 一、安装须知二、安装jdk三、安装shh四、安装配置hadoop五、运行hadoop 一、安装须知 本次安装的Hadoop版本为hadoop3.3.5。 在这之前完成了VMware虚拟软件的安装&#xff0c;并安装了Ubuntu22.04&#xff0c;在这基础上进行相关配置。 二、安装jdk 在Ubuntu中使用…

MySQL查询执行(一):count执行慢

查询处理器 MySQL查询处理器是MySQL数据库服务器的组件&#xff0c;它负责执行SQL查询。查询处理器的主要任务是解析查询&#xff08;把用户提交的SQL查询转换为可以被数据库引擎理解和执行的数据操作指令序列&#xff09;&#xff0c;生成查询计划&#xff0c;然后执行该计划。…

C++程序的UI界面闪烁问题的解决办法总结

Windows C++程序复杂的UI界面要使用多种绘图技术(使用GDI、GDI+、ddraw、D3D等绘图),并要贴图去美化,在窗口移动或者改变大小的时候可能会出现闪烁。下面罗列一下UI界面产生闪烁的几种可能的原因,并给出相应的解决办法。 1、原因一 如果熟悉显卡原理的话,调用GDI函数向屏…

JVM系列(三) -类加载器及双亲委派模型介绍

在之前的文章中&#xff0c;介绍了类的加载过程中&#xff0c;我们有提到在加载阶段&#xff0c;通过一个类的全限定名来获取此类的二进制字节流操作&#xff0c;其实类加载器就是用来实现这个操作的。 在虚拟机中&#xff0c;任何一个类&#xff0c;都需要由加载它的类加载器…

《Milvus Cloud向量数据库指南》——Milvus Cloud不同场景下的部署形态选型

不同场景下的部署形态选型 一般说选型肯定离不开阶段。用到向量数据库的应用基本有这么几个阶段: AI 应用的快速原型构建。比如你在做一个 AI 个人助手、一个小的搜索引擎原型、一个端到端的 RAG 原型,这类项目的迭代速度是很关键的,而且原型构建期不需要关心性能或者稳定性…

暑假第二周任务——3Gshare的仿写

3GShare的仿写 登陆注册页面 这个界面的UI比较简单&#xff0c;比较困难的地方在于限制我们的输入长度以及我们输入的字符类型。 在这里我是通过在textField的代理中设计限定输入字符的内容&#xff0c;从而实现限制输入长度和限制输入字符的内容&#xff0c;下面给出相关的代…

Day24|二叉树 PART08

235. 二叉搜索树的最近公共祖先 与236类似但可以利用二叉搜索树的性质来做 二叉搜索树&#xff1a;左子 小于头 小于右子 &#xff08;怪怪的 感觉是不是先记住比较好&#xff09;&#xff08;而且也没太理解二叉搜索树的规律&#xff09; 大体思路&#xff1a;从上到下遍历&a…

html 解决tooltip宽度显示和文本任意位置换行文本显示问题

.el-tooltip__popper {max-width: 480px;white-space: break-spaces; /* 尝试不同的white-space属性值 */word-break:break-all; }

干货:three.js中的六大光源的知识点。

我们在二维屏幕中感知三维场景的一个最重要的要素就是光&#xff0c;光和光源是three.js中一个非常重要的知识点。本文想借着这个话题&#xff0c;为老铁们分享以下六大光源知识点&#xff1a;环境光、点光源、聚光灯、方向光、半球光、平面光。 一、点光源 在 Three.js 中&a…

模拟string(四)详解

目录 判断string大小关系bool operator(const string&s1,const string s2)代码 bool operator<(const string& s1, const string& s2)代码 bool operator<(const string& s1, const string& s2)代码 bool operator>(const string& s1, const …

Stable Diffusion WebUI本地环境搭建

一、项目代码下载 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 二、环境配置 conda create --n stafu python3.10.6 实际上跟自己创建的环境没有关系&#xff0c;项目启动会自动复制这个环境&#xff0c;之后项目根据这个基础环境构建 也可以在自己…

机器学习——第一章 绪论

目录 1. 1 引言 1. 2 基本术语 1.3 假设空间 1.4 归纳偏好 1. 1 引言 机器学习致力于研究如何通过计算的手段&#xff0c;利用经验来玫善系统自身的性能在计算机系统中&#xff0c;"经验"通常以"数据"形式存在&#xff0c;因此&#xff0c;机器学习所研…

由字节对齐引发的一场“血案“

最近在搞个网络通信协议&#xff0c; 采用socket udp传输&#xff0c; 运行时&#xff0c;居然报段错误了&#xff0c; 经过debug&#xff0c;发现居然是因为字节对齐问题导致的。 这个问题在实现通信协议&#xff0c;是经常会遇到的问题&#xff0c; 为了方便读者理解&am…

PSVR2下个月将正式支持PC

PlayStation VR 2将于下个月正式支持PC平台。连接PC&#xff0c;需要使用PlayStation VR2头显PC适配器&#xff0c;该适配器将于8月7日发售。 需要注意的是&#xff0c;玩家还需要一根兼容DisplayPort 1.4的线缆、一个Steam账号以及满足最低配置要求的PC。 索尼特别强调&#…

js 替换json中的转义字符 \

例如有以下字符串 "\"{\\\"account\\\":\\\"66\\\",\\\"name\\\":\\\"66\\\"}\"" 想得到如下字符串 {"account":"66","name":"66"} 执行替换字符串 "\"{…

大坝安全监测设备有哪些主要功能?

推荐型号&#xff1a;TH-WY1】大坝安全监测设备的主要功能包括以下几个方面&#xff1a; 1. **实时监测大坝的各项物理参数**&#xff1a;包括应变、位移、水位、流量等<sup>1</sup><sup>2</sup>。 2. **数据处理和分析**&#xff1a;对监测数据进行处…

热门音效、BGM哪里可以免费下载?

剪辑的奇妙世界等你探索&#xff01;在这个创意的领域里&#xff0c;音效是创造氛围、增强表现力的重要元素。我整理了8个优质的剪辑音效素材网站&#xff0c;它们提供了丰富多样的音效资源&#xff0c;无论是制作视频、音乐还是动画&#xff0c;都能为你提供所需的声音。 1、b…

单关节电机动力学辨识

这是一个单关节电机的动力学辨识过程&#xff0c;这是一个yaw轴转动电机的动力学辨识过程 1、动力学建模 &#xff08;1&#xff09;整体动力学 F J α f F J\alpha f FJαf 单关节的物理量包括惯性项、离心力和科氏力、摩擦力。这里忽略离心力和科氏力&#xff0c;据说…

信息学奥赛初赛天天练-47-CSP-J2020完善程序1-质数、因数、质因数、质因数分解算法、质因数分解算法优化

PDF文档公众号回复关键字:20240727 2020 CSP-J 完善程序1 1 完善程序 (单选题 &#xff0c;每小题3分&#xff0c;共30分) 质因数分解给出正整数 n&#xff0c;请输出将 n 质因数分解的结果&#xff0c;结果从小到大输出 例如&#xff1a;输入 n120&#xff0c;程序应该输出…

mysql报错:Unknown collation: ‘utf8mb4_0900_ai_ci‘的原因及解决方法

参考博客&#xff1a;http://t.csdnimg.cn/NRzyk 报错场景描述 使用navicate在查询中运行sql语句时报错&#xff1a;Unknown collation: utf8mb4_0900_ai_ci 报错原因 生成转储文件的数据库版本为8.0&#xff0c;我本地数据库版本为5.6&#xff0c;高版本导入到低版本&…