python中pandas常用命令详解

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

1、pandas

pandas 是一个多功能且功能强大的数据科学库。

2、读取数据

pd.read_csv("data.csv")

3、读取指定列

pd.read_csv("data.csv", usecols=["date", "price"])

4、读取并解析日期

pd.read_csv("data.csv", parse_dates=["date"])

5、读取时指定数据类型

在读取时设置类别数据类型可以节省内存。

pd.read_csv("data.csv", dtype={"house_type": "category"})

6、读取时设置索引

pd.read_csv("data.csv", index_col="date")

7、设置读取的行数

pd.read_csv("data.csv", nrows=100)

8、读取时跳过行数

pd.read_csv("data.csv", skiprows=[1, 5])  # skips line 1 and 5
pd.read_csv("data.csv", skiprows=100)  # skips the first 100 lines
pd.read_csv("data.csv", skiprows=lambda x: x > 0 and np.random.rand() > 0.1) # skip 90% of the rows

9、指定NA值

pd.read_csv("data.csv", na_values=["?"])

10、设置布尔值

pd.read_csv("data.csv", true_values=["yes"], false_values=["no"])

11、一次读取多个文件后合并

import glob
import os
files = glob.glob("file_*.csv")
result = pd.concat([pd.read_csv(f) for f in files], ignore_index=True)

12、复制数据

df = pd.read_clipboard() 

13、从 PDF 文件中读取表格

from tabula import read_pdf
# Read pdf into list of DataFrame
df = read_pdf('test.pdf', pages='all')

14、快速可视化数据集

import pandas_profiling
df = pd.read_csv("data.csv")
profile = df.profile_report(title="Pandas Profiling Report")
profile.to_file(output_file="output.html")

15、按dtype过滤列

# 选择
df.select_dtypes(include="number")
df.select_dtypes(include=["category", "datetime"])

# 排除
df.select_dtypes(exclude="object")

16、推断数据类型

df.infer_objects().dtypes

17、向下转换数值类型

pd.to_numeric(df.numeric_col, downcast="integer") # smallest signed int dtype
pd.to_numeric(df.numeric_col, downcast="float")  # smallest float dtype

18、防止错误值并填充

# apply to whole data frame
df = df.apply(pd.to_numeric, errors="coerce")
# apply to specific columns
pd.to_numeric(df.numeric_column, errors="coerce")
# filling NA values with zero
pd.to_numeric(df.numeric_column, errors="coerce").fillna(0)

19、按列数据类型转换

df = df.astype(
    {
        "date": "datetime64[ns]",
        "price": "int",
        "is_weekend": "bool",
        "status": "category",
    }
)

20、重命名列

df = df.rename({"PRICE": "price", "Date (mm/dd/yyyy)": "date"}, axis=1)

21、添加后缀和前缀

df.add_prefix("pre_")
df.add_suffix("_suf")

22、从原列创建新列

# create new column of Fahrenheit values from Celcius
df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)

23、在特定位置插入列

random_col = np.random.randint(10, size=len(df))
df.insert(3, 'random_col', random_col) # inserts at third column

24、三元表达式

df["logic"] = np.where(df["price"] > 5, "high", "low")

25、删除列

df.drop('col1', axis=1, inplace=True)
df = df.drop(['col1','col2'], axis=1)
s = df.pop('col')
del df['col']
df.drop(df.columns[0], inplace=True)

26、修改列名

df.columns = df.columns.str.lower()
df.columns = df.columns.str.replace(' ', '_')

27、判断包含

df['name'].str.contains("John")
df['phone_num'].str.contains('...-...-....', regex=True)  # regex
df['email'].str.contains('gmail')

28、根据正则查找

pattern = '([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\\.([A-Z]{2,4})'
df['email'].str.findall(pattern, flags=re.IGNORECASE)

29、检查缺失值并打印缺失百分比

def missing_vals(df):
    """prints out columns with perc of missing values"""
    missing = [
        (df.columns[idx], perc)
        for idx, perc in enumerate(df.isna().mean() * 100)
        if perc > 0
    ]

    if len(missing) == 0:
        return "no missing values"

    # sort desc by perc
    missing.sort(key=lambda x: x[1], reverse=True)

    print(f"There are a total of {len(missing)} variables with missing values\n")

    for tup in missing:
        print(str.ljust(f"{tup[0]:<20} => {round(tup[1], 3)}%", 1))
missing_vals(df)

30、处理缺失值

# drop
df.dropna(axis=0)
df.dropna(axis=1)
# impute
df.fillna(0)
df.fillna(method="ffill")
df.fillna(method='bfill')
# replace
df.replace( -999, np.nan)
df.replace("?", np.nan)
# interpolate
ts.interpolate() # time series
df.interpolate() # fill all consecutive values forward
df.interpolate(limit=1) # fill one consecutive value forward
df.interpolate(limit=1, limit_direction="backward")
df.interpolate(limit_direction="both")

31、从今天/之前获取 X 小时/天/周

# from today
date.today() + datetime.timedelta(hours=30)
date.today() + datetime.timedelta(days=30)
date.today() + datetime.timedelta(weeks=30)

# ago
date.today() - datetime.timedelta(days=365)

32、过滤两个日期

df[(df["Date"] > "2015-01-01") & (df["Date"] < "2017-01-01")]

33、按日/月/年过滤

df[(df["Date"] > "2015-01-01") & (df["Date"] < "2017-01-01")]

34、格式化数据格式

format_dict = {
    "Date": "{:%d/%m/%y}",
    "Open": "${:.2f}",
    "Close": "${:.2f}",
    "Volume": "{:,}",
}

df.style.format(format_dict)

35、设置数据颜色

(
    df.style.format(format_dict)
    .hide_index()
    .highlight_min(["Open"], color="red")
    .highlight_max(["Open"], color="green")
    .background_gradient(subset="Close", cmap="Greens")
    .bar('Volume', color='lightblue', align='zero')
    .set_caption('Tesla Stock Prices in 2017')
)

36、获取一列中最大最小项的id

df['col'].idxmin()
df['col'].idxmax()

37、对数据列应用函数

df.applymap(lambda x: np.log(x))

38、随机打乱数据

df.sample(frac=1, random_state=7).reset_index(drop=True)

39、时间序列的百分比变化

df['col_name'].pct_change()

40、分配等级

df['rank'] = df['column_to_rank'].rank()

41、检查内存占用

df.memory_usage().sum() / (1024**2) #converting to MB

42、将列的值分解为多行

df.explode("col_name").reset_index(drop=True)

43、将数量较小的类别转换为“其他”

subclass = df.MSSubClass
subclass.value_counts()
top_five = subclass.value_counts().nlargest(5).index
mssubclass_new = subclass.where(subclass.isin(top_five), other="Other")
mssubclass_new.value_counts()

到此这篇关于python中pandas常用命令的文章就介绍到这了,更多相关python pandas常用命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python Pandas处理CSV文件的常用技巧分享

    目录 读取Pandas文件 统计列值出现的次数 筛选特定列值 遍历数据行 绘制直方图(柱状图) Pandas处理CSV文件,分为以下几步: 读取Pandas文件 统计列值出现的次数 筛选特定列值 遍历数据行 绘制直方图(柱状图) 读取Pandas文件 df = pd.read_csv(file_path, encoding='GB2312') print(df.info()) 注意:Pandas的读取格式默认是UTF-8,在中文CSV中会报错: UnicodeDecodeError: 'utf-

  • python基础篇之pandas常用基本函数汇总

    目录 前言 1.汇总函数 2.特征统计函数 3.唯一值函数 4.替换函数 总结 前言 这篇主要整理pandas常用的基本函数,主要分为五部分: 汇总函数 特征统计函数 唯一值函数 替换函数 排序函数 1.汇总函数 常用的主要是4个: tail(): 返回表或序列的后n行 head(): 返回表或序列的前n行 info(): 返回表的信息概况 describe(): 返回表中数值列对应的主要统计量 n默认为5 df.describe() #运行截图 Height Weight count 183.

  • Python Pandas常用函数方法总结

    初衷 NumPy.Pandas.Matplotlib.SciPy 等可以说是最最最常用的 Python 库了.我们在使用 Python 库的时候,通常会遇到两种情况.以 Pandas 举例. 我想对 Pandas 数据结构的数据实现某种操作,但是我不知道或者说在我的印象里似乎已经不记得是否有这样的函数方法,如果有,又该用哪个方法呢? 我想实现某种数据操作,我记得我用过或者见过某个函数可以实现这个功能,但是我死活想不起来那个函数叫啥了.或者,我想起来了哪个函数可以实现这个功能,但是我想知道是否有更

  • Python pandas常用函数详解

    本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime import re 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名,0,1,2,3... names=['A', 'B', 'C'...] 自定义列名 index_col='

  • python中pandas常用命令详解

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.pandas提供了大量能使我们快速便捷地处理数据的函数和方法.你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一. 1.pandas pandas 是一个多功能且功能强大的数据科学库. 2.读取数据 pd.read_csv("data.csv") 3.读取指定列 pd.read_csv(&quo

  • Nodejs中 npm常用命令详解

    npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载.安装.上传以及管理已经安装的包. npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm install moduleNames:安装Node模块 安装完毕后会产生一个node_modules目录,其目录下就是安装的

  • Linux 中 CURL常用命令详解

    下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://www.centos.org 通过-o/-O选项保存下载的文件到指定的文件中: -o:将文件保存为命令行中指定的文件名的文件中 -O:使用URL中默认的文件名保存文件到本地 # 将文件下载到本地并命名为mygettext.html curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html # 将文件保存到本地并命名

  • Java中的zookeeper常用命令详解

    目录 1.zkCli.sh客户端 2.多节点类型创建 3.查询节点 4.set数据 5.删除节点 6.权限设置 7.其他命令 注意我这里用的是官方最稳定的版本3.7.1,版本之间有个别命令是有差距的! 1.zkCli.sh客户端 zkCli.sh可以理解成客户端,也可以理解成命令行工具,把命令交给他,让他和zk的服务端打交道.类似于mysql,我们安装完mysql想要执行命令,那么就必须要通过mysql -u账号 -p密码进入命令行工具里面,才能执行sql. 在zookeeper/bin 目录下

  • django之常用命令详解

    Django 基本命令 本节主要是为了让您了解一些django最基本的命令,请尝试着记住它们,并且多多练习下 1. 新建一个 django project django-admin.py startproject project-name 一个 project 为一个项目,project-name 项目名称,改成你自己的,要符合Python 的变量命名规则(以下划线或字母开头) 2. 新建 app python manage.py startapp app-name 或 django-admin

  • python中 logging的使用详解

    日志是用来记录程序在运行过程中发生的状况,在程序开发过程中添加日志模块能够帮助我们了解程序运行过程中发生了哪些事件,这些事件也有轻重之分. 根据事件的轻重可分为以下几个级别: DEBUG: 详细信息,通常仅在诊断问题时才受到关注.整数level=10 INFO: 确认程序按预期工作.整数level=20 WARNING:出现了异常,但是不影响正常工作.整数level=30 ERROR:由于某些原因,程序 不能执行某些功能.整数level=40 CRITICAL:严重的错误,导致程序不能运行.整数

  • hbase shell基础和常用命令详解

    HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase

  • Maven 配置文件 生命周期 常用命令详解

    当前,JVM生态圈主要的三大构建工具: Apache Ant(带着Ivy) Maven Gradle 对于初学者,Ant是最清晰的,只要读懂Xml配置文件你就能够理解它干了什么,但是ant文件很容易变的更加复杂.Maven有自己的工程目录规则和内置的构建生成周期,从而使构建文件更加简单.gradle有很多开箱即用的插件,语法更加短小精悍,易于理解. 在讲解maven之前这里我们先简单比较下Maven和Ant.下面是一个简单的Ant例子.这个例子可以看出我们需要明确的告诉Ant.我们想让他做什么.

  • python flask安装和命令详解

    Flask Web开发实战学习笔记 Flask简介 Flask是使用Python编写的Web微框架.Web框架可以让我们不用关 心底层的请求响应处理,更方便高效地编写Web程序.因为Flask核心简 单且易于扩展,所以被称作微框架(micro framework).Flask有两个主 要依赖,一个是WSGI(Web Server Gateway Interface,Web服务器网关 接口)工具集--Werkzeug(http://werkzeug.pocoo.org/),另一个是 Jinja2模

随机推荐