2024.4.29 Pandas day01 基础语法

 

pandas是python的一个数据库,在使用数据库的时候需要输入 import pandas as pd 引入,

df = pd.read.csv(''文件路径“):这是利用pandas数据库读取CSV文件的方法,如果读取EXCEL文件或者其他文件,csv文件换成其他文件的格式。

df.dtypes:如果在文件中有字符型数据返回object

df.head(n):表示将前n行数据显示出来,默认是显示前五行

df.tail(n):表示将后n行数据显示出来,默认后五行

最后打印即可

关于dytype

pd.read_csv('Nowcoder.csv')会尝试自动推断每列的数据类型,而pd.read_csv('Nowcoder.csv', dtype=object)会将所有列的数据类型设置为object

如果不指定数据类型(即第一个例子),pandas会尝试推断每个列的数据类型,这可能会导致一些列被错误地解释为不同的类型,从而可能导致错误。指定dtype=object可以确保所有列都被解释为Python对象(即字符串),这对于某些情况可能是有用的。

另一方面,指定正确的数据类型可以提高性能和减少内存使用,因为pandas可以更好地利用数据类型的信息进行优化。 因此,如果您已经知道每列的正确数据类型,则最好指定它们。

在 pandas 中,数据类型object表示一个通用的 Python 对象,可以存储任何 Python 对象类型,包括字符串、整数、浮点数、列表、字典、自定义类等。将数据类型设置为object表示将每个数据点解释为 Python 对象,而不是尝试自动推断数据类型。这种设置在某些情况下可能很有用,比如:

  • 数据集中的某些列包含混合类型的数据(如字符串和数字),而不是单一的数据类型。
  • 某些列的数据类型无法被 pandas 正确地推断。
  • 想要在使用数据时动态地处理数据类型的情况。

但是,由于 object 类型是一个通用的 Python 对象,其存储和处理速度通常比其他数据类型要慢,并且占用更多的内存空间,因此只有在确实需要时才应将数据类型设置为 object

  • loc :  Selection by Label ,按标签取数据,   

loc[行索引,列名/column]

(如果第二个参数的个数是全部即 : ,可以省略不写)。  

例:  

print(df.loc[1,'name'])    # 索引1(行),名为‘name’的列  

  • iloc :  Selection by Position,即按位置选择. 只接受整型参数。  

不接受列字段名称作为参数,只支持列字段的位置索引作为参数。  

iloc[行索引,列索引](没有逗号及以后就是默认列为所有列)  

  • isnull: 判断是否为空。

       返回bool类型的值:True or False

  • any:返回是否至少一个元素为真

       all:返回是否所有元素为真

       axis=1或0:    1表示横轴,方向从左到右;0表示纵轴,方向从上到下

import pandas as pd

df = pd.read_csv("Nowcoder.csv", sep=",", dtype=object)
print(df[df["Language"] == "Python"])
"""
df['Language'] == 'Python' 创建一个布尔型 Series,该 Series 的长度与 df 的长度相同,
并且对应于每行数据,如果该行中 'Language' 列的值为 'Python',则该行对应的 Series 元素为 
True,否则为 False。

最后,使用布尔型 Series 作为索引,将 DataFrame 中所有 'Language' 列为 'Python' 的行提取出来,
并将其打印输出。这里的 df[df['Language']=='Python'] 表示只选择 DataFrame 中 'Language' 
列的值为 'Python' 的行。
"""
 

import pandas as pd

nk = pd.read_csv('Nowcoder.csv',sep=',')

col = [0,1,2,5]

print(nk.iloc[-5:-1,col])

pd.set_option("display.max_columns", None)  # 显示所有的列,而不是以……显示

pd.set_option("display.max_rows", None)  # 显示所有的行,而不是以……显示

pd.set_option("display.width", None)  # 不自动换行显示

这是使用 `pd.set_option()` 函数设置 Pandas 显示选项的例子。让我解释一下这些选项的含义:

- `pd.set_option('display.width', 300)`: 设置显示一行的最大字符宽度为300。这意味着当你输出一行的内容时,如果内容的字符宽度超过了300,Pandas会尝试自动换行,以使输出更容易阅读,None就可以不换行。

- `pd.set_option('display.max_rows', None)`: 设置显示的最大行数为无限。当你输出 DataFrame 或 Series 时,所有行都会被显示,而不是被截断。这可以帮助你查看整个数据集。

- `pd.set_option('display.max_columns', None)`: 设置显示的最大列数为无限。当你输出 DataFrame 时,所有列都会被显示,而不是被截断。这对于查看包含大量列的 DataFrame 是有用的。

这些选项的设置可以根据你的需要进行调整。在实际使用中,你可以根据数据的大小和显示需求来设置这些选项。例如,如果你的数据集很大,可能需要限制显示的行数和列数,以避免输出过于庞大。

同时多个条件筛选

cond1 = Nowcoder['Language'] == 'CPP'

cond2 = Nowcoder['Level'] == 7

cond3 = Nowcoder['Graduate_year'] != 2018

cond = cond1 & cond2 & cond3

print(Nowcoder[cond])

或者使用查询

print(nk.query('Language=="CPP"&Level>=7 &Graduate_year!=2018'))

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
# 完整版函数
# value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
# 参数:
# 1.normalize : boolean, default False 默认false,如为true,则以百分比的形式显示
# 2.sort : boolean, default True 默认为true,会对结果进行排序
# 3.ascending : boolean, default False 默认降序排序
# 4.bins : integer, 格式(bins=1),意义不是执行计算,而是把它们分成半开放的数据集合,只适用于数字数据
# 5.dropna : boolean, default True 默认删除na值


print(Nowcoder['Language'].value_counts())

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

库存管理系统开源啦

软件介绍 ModernWMS是一个针对小型物流仓储供应链流程的开源库存管理系统。该系统的开发初衷是为了满足中小型企业在有限IT预算下对仓储管理的需求。通过总结多年ERP系统研发经验,项目团队开发了这套适用于中小型企业的系统,以帮助那些有特定需求的用户。…

Python-Socket编程实现tcp-udp通信

本文章是记录我准备大创项目时学的socket编程的用法,纯属记录生活,没有教学意义,视频我是看b站up主王铭东学的,讲的很详细,我只粗略学了个大概,我想要通过tcp,udp传输yolo目标检测中的物体坐标信…

C语言中的goto语句

goto label; C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。 #include <stdio.h> int main(){goto first;printf("我是你好\n");first:printf("nihao\n");second:printf("This is 2\n");return 0; } 使用goto会…

== 和 equals()区别,equals()重写问题

对于引用类型&#xff1a;比较的是两个引用是否相同&#xff08;所指的是否为同一个对象&#xff09;&#xff0c;注&#xff1a;如果两个引用所指的对象内容一样&#xff0c;但是不是同一个对象&#xff08;hashcode不一样&#xff09;&#xff0c;依然返回false&#xff0c;随…

MYSQL数据目录结构上篇-表在文件系统中表示

前言感悟:我个人是比较不喜欢只会用,不太懂为什么的这么用,而且有的时候很多官方术 语让人难以读懂, 这里我会用比较大白话的方式,让我自己也能让网友们更加理解,如果书写哪里有误,欢迎大家指出((,,•ω•)ノ"(っω•&#xff40;。)) 从入门开始啦推荐一个学习mysql的视频…

在GPU上加速RWKV6模型的Linear Attention计算

精简版&#xff1a;经过一些profile发现flash-linear-attention中的rwkv6 linear attention算子的表现比RWKV-CUDA中的实现性能还要更好&#xff0c;然后也看到了继续优化triton版本kernel的线索。接着还分析了一下rwkv6 cuda kernel的几次开发迭代以此说明对于不懂cuda以及平时…

基于Springboot的房屋租赁管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的房屋租赁管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

【机器学习】Ctrl-Adapter:视频生成领域的革新者

Ctrl-Adapter&#xff1a;视频生成领域的革新者 一、ControlNets的挑战与Ctrl-Adapter的应运而生二、Ctrl-Adapter的技术原理与实现三、Ctrl-Adapter的应用实例与性能表现四、Ctrl-Adapter的意义与未来展望 随着人工智能技术的飞速发展&#xff0c;图像与视频生成领域正经历着前…

【busybox记录】【shell指令】cksum

目录 内容来源&#xff1a; 【GUN】【cksum】指令介绍 【busybox】【cksum】指令介绍 【linux】【cksum】指令介绍 使用示例&#xff1a; 计算校验和 - 传统输出格式 默认输出 - 基础POSIX标准32位CRC校验和 其他校验指令对参数有更好的支持&#xff0c;请看其他校验指…

一篇文章带你深入了解“指针”

一篇文章带你深入了解“指针” 内存和地址了解指针指针类型const修饰指针指针的运算指针与整数之间的运算指针与指针之间的运算指针的关系运算 void* 指针传值调用和传址调用数组和指针的关系野指针野指针的形成原因规避野指针 二级指针字符指针指针数组数组指针数组传参一维数…

灌溉机器人 状压dp

灌溉机器人 题目描述 农田灌溉是一项十分费体力的农活&#xff0c;特别是大型的农田。小明想为农民伯伯们减轻农作负担&#xff0c;最近在研究一款高科技——灌溉机器人。它可以在远程电脑控制下&#xff0c;给农田里的作物进行灌溉。 现在有一片 N 行 M 列的农田。农田的土…

Java Jackson-jr 库是干什么用的

Jackson-jr 是一个轻量级的Java JSON 处理库。这个库被设计用来替代 Jackson 的复杂性。对比 Jackson 的复杂 API&#xff0c;Jackson-jr 的启动速度更快&#xff0c;包大小更小。 虽然Jackson databind&#xff08;如ObjectMapper&#xff09;是通用数据绑定的良好选择&#…

三维重建(SFM)与实时定位建图(SLAM)的区分与联系

1、SLAM SLAM是Simultaneous Location and Mapping&#xff0c;同时定位与地图构建。是指搭载特定传感器的主体&#xff0c;在没有环境先验信息的情况下&#xff0c;于运动过程中建立环境的模型&#xff0c;同时估计自己的运动。目的是解决自主机器人“定位”和“建图”两个问题…

OpenCV多张图片堆叠显示

OpenCV实现多张图片堆叠显示 程序思路效果代码 程序思路 读取两张或多张图片&#xff1b;获取图片尺寸&#xff1b;选择多张图片中较大的宽度和高度建立画布&#xff1b;合并图片到画布&#xff1b; 效果 代码 import cv2 import numpy as np# 读取两张图片 img1 cv2.imrea…

C# Web控件与数据感应之 TreeView 类

目录 关于 TreeView 一些区别 准备数据源 范例运行环境 一些实用方法 获取数据进行呈现 ​根据ID设置节点 获取所有结点的索引 小结 关于 TreeView 数据感应也即数据捆绑&#xff0c;是一种动态的&#xff0c;Web控件与数据源之间的交互&#xff0c;本文将继续介绍与…

mysql设置允许其他IP访问

文章目录 更改mysql配置文件登录mysql 更改mysql配置文件 查找.ini或者.cnf文件 更改bind-address为0.0.0.0 [mysqld] character-set-serverutf8mb4 bind-address0.0.0.0 default-storage-engineINNODB [mysql] default-character-setutf8mb4 [client] default-character-s…

redis集群-主从机连接过程

首先从机需要发送自身携带的replid和offset向主机请求连接 replid&#xff1a;replid是所有主机在启动时会生成的一个固定标识&#xff0c;它表示当前复制流的id&#xff0c;当从机第一次请求连接时&#xff0c;主机会将自己的replid发送给从机&#xff0c;从机在接下来的请求…

LAME及 iOS 编译

文章目录 关于 LAME编译 for iOS 关于 LAME 官网&#xff1a;https://lame.sourceforge.io LAME是根据LGPL许可的高质量MPEG音频层III&#xff08;MP3&#xff09;编码器。 LAME的开发始于1998年年中左右。Mike Cheng 最开始将它作为针对8hz-MP3编码器源的补丁。在其他人提出…

Redis(九)渐进式遍历 | 数据库管理

文章目录 前言什么是渐进式遍历SCAN数据库管理 前言 前面我们学习了针对 redis 五种基本数据类型和五种特殊数据类型的常用命令&#xff0c;其中通用命令 keys pattern 我们都知道是用来查询当前 redis 服务器中有哪些 key 的&#xff0c;而如果此时 redis 服务器中存在很多的…

mac安装虚拟机linux系统

需要下载的有&#xff1a;centos8镜像 , 虚拟器 VMware 软件包 , Termius 或者xshell 1. CentOS系统下载 linux系统一般有&#xff1a; CentOS、ubuntu、redhat&#xff0c;选择一种进行安装就可以 CentOS 2024 年开始停止维护和发布 CentOS8的下载与安装(windows下安装) 镜…