2024.4.29 Pandas day01 基础语法

2024-05-05 23:28

本文主要是介绍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())

这篇关于2024.4.29 Pandas day01 基础语法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962947

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin