首页 > 编程语言 >DataFrame数据框的Python操作

DataFrame数据框的Python操作

时间:2023-11-28 22:36:52浏览次数:31  
标签:None False Python DataFrame df 默认 print 操作

探索和清理数据听起来很无聊,而且不像训练最先进的 AI 模型那么酷。但如果你想成为一名专业的数据科学家,探索性数据分析和数据预处理也是必不可少的技能。幸运的是,有许多很棒的工具可以帮助您了解数据集。著名的 Python 数据处理模块 Pandas 就是其中之一。DataFrame是一个二维的表格数据结构,是pandas库中最重要的数据结构之一。它类似于电子表格或关系型数据库中的表格,可以存储和操作具有不同类型的数据。DataFrame由行索引(也称为标签)和列索引组成,可以看作是一系列Series对象的集合,其中每个Series代表一列数据。每列可以是不同的数据类型,如整数、浮点数、字符串或日期等。DataFrame提供了一系列功能强大的操作和方法,使得数据的清洗、转换、分析和可视化变得更加方便。您可以使用DataFrame来加载、处理和分析结构化的数据,进行数据探索和预处理,以及进行统计分析和建模等任务。

一、DataFrame 的常用操作

# 通过 DataFrame 构造数据框
d = [[1.0,2.2,3,4],[1,2,3,4],[7,8,9,0],[3,5,7,9]]
print(d)
df = pd.DataFrame(d)
print(df)
# index 修改行名称,columns 修改列名称
df = pd.DataFrame(d, index=['a', 'b', 'c', 'd'], columns=['A', 'B', 'C', 'D'])
print(df)
函数 values index columns dtypes size ndim shape
返回值 元素 索引 列名 类型 元素个数 维度数 数据形状/行列数目
# DataFrame 数据框的常用属性
d = [[1.0,2.2,3,4],[1,2,3,4],[7,8,9,0],[3,5,7,9]]
df = pd.DataFrame(d, index=['a', 'b', 'c', 'd'], columns=['A', 'B', 'C', 'D'])
print(df)
print(df.values)
print(df.index)
print(df.shape)
print(df.dtypes)

二、选取数据框的列或行

DataFrame.loc[行索引名称,列索引名称],如果传入的不是索引名称,那么切片操作将无法执行。
DataFrame.iloc[行索引位置,列索引位置],如果传入的不是索引位置,那么切片操作将无法执行。
loc方法的代码灵活多变,代码的可读性更高;iloc 方法的代码简洁,但可读性不高。

  • 使用 loc、iloc 方法实现多列切片,其原理是将多列的列名或者位置作为一个列表或者数据传入。
  • 使用 loc、iloc 方法可以取出 DataFrame 中的任意数据。
  • 在使用 loc 方法的时候内部传入的行索引名称如果为一个区间,则前后均为闭区间。其内部还可以传入表达式,结果会返回满足表达式的所有值。
  • 在使用 loc 方法的时候内部传入的行索引位置或列索引位置为区间时,则为前闭后开区间。
  • 使用 loc 方法能够实现所有单层索引切片操作。
# 按照行列顺序进行数据访问
print(df.iloc[0, 0])                 # 取出第一行第一列的数据
print(df.iloc[0:3, 0])               # 取出前三行第一列的数据
print(df.iloc[:, 0])                 # 取出第一列的数据
print(df.iloc[0, :])                 # 取出第一行的数据
print(df.iloc[1:3, 1:3])

三、删除数据框的元素

使用 drop 方法删除 Series 的元素或 DataFrame 的某一行(列)。

DataFrame.drop(labels=None, axis=0, levels=None, inplace=False)
参数名称 说明
labels 接收 string 或 array。代表删除的行或列的标签。无默认。
axis 接收0或1。代表操作的轴向。默认为0。
levels 接收 int 或者索引名。代表标签所在级别。默认为 None。
inplace 接收 boolean。代表操作是否对原数据生效。默认为 False。
d = [[1.0,2.2,3,4],[1,2,3,4],[7,8,9,0],[3,5,7,9]]
df = pd.DataFrame(d, index=['a', 'b', 'c', 'd'], columns=['A', 'B', 'C', 'D'])
print(df)
print(df.drop('D', axis=1, inplace=False))    # 删除数据框的列元素
print(df.drop(['a', 'c'], axis=0))            # 删除数据框的行元素

四、分析数据框数据

Pandas 库基于 Numpy 库,自然也可以用 Numpy 函数对数据框进行描述性统计,Pandas 提供了更加便利的方法来计算均值。

方法名称 说明 方法名称 说明
min 最小值 max 最大值
mean 均值 ptp 极差
median 中位数 std 标准差
var 方差 cov 协方差
sem 标准误差 mode 众数
skew 样本偏度 kurt 样本峰度
quantile 四分位数 count 非空值数目
describe 描述统计 mad 平均绝对离差

describe 方法能够一次性得出数据框所有数值型特征的非空值数目、均值、四分位数、标准差。

import pandas as pd
import numpy as np
d = [[1.0,2.2,3,4],[1,2,3,4],[7,8,9,0],[3,5,7,9]]
df = pd.DataFrame(d, index=['a', 'b', 'c', 'd'], columns=['A', 'B', 'C', 'D'])
print(df)
print(np.mean(df))              # 每一列的均值
print(np.mean(df, axis=1))      # 每一行的均值
print(df.mean(axis=1))          # 每一行的均值
print(df.std())                 # 标准差
df.describe()                   # 按列查看分布情况

五、绘制数据框Plot图

DataFrame.plot(x=None, y=None, kind='line', ax=None, subplots=False, 
                sharex=None, sharey=False, layout=None, figsize=None, 
                use_index=True, title=None, grid=None, legend=True, 
                style=None, logx=False, logy=False, loglog=False, 
                xticks=None, yticks=None, xlim=None, ylim=None, rot=None, 
                fontsize=None, colormap=None, position=0.5, table=False, yerr=None, 
                xerr=None, stacked=True/False, sort_columns=False, 
                secondary_y=False, mark_right=True, **kwds)
#参数介绍
x和y:表示标签或者位置,用来指定显示的索引,默认为None
kind:表示绘图的类型,默认为line,折线图
line:折线图
bar/barh:柱状图(条形图),纵向/横向
pie:饼状图
hist:直方图(数值频率分布)
box:箱型图
kde:密度图,主要对柱状图添加Kernel 概率密度线
area:区域图(面积图)
scatter:散点图
hexbin:蜂巢图
ax:子图,可以理解成第二坐标轴,默认None
subplots:是否对列分别作子图,默认False
sharex:共享x轴刻度、标签。如果ax为None,则默认为True,如果传入ax,则默认为False
sharey:共享y轴刻度、标签
layout:子图的行列布局,(rows, columns)
figsize:图形尺寸大小,(width, height)
use_index:用索引做x轴,默认True
title:图形的标题
grid:图形是否有网格,默认None
legend:子图的图例
style:对每列折线图设置线的类型,list or dict
logx:设置x轴刻度是否取对数,默认False
logy
loglog:同时设置x,y轴刻度是否取对数,默认False
xticks:设置x轴刻度值,序列形式(比如列表)
yticks
xlim:设置坐标轴的范围。数值,列表或元组(区间范围)
ylim
rot:轴标签(轴刻度)的显示旋转度数,默认None
fontsize : int, default None#设置轴刻度的字体大小
colormap:设置图的区域颜色
colorbar:柱子颜色
position:柱形图的对齐方式,取值范围[0,1],默认0.5(中间对齐)
table:图下添加表,默认False。若为True,则使用DataFrame中的数据绘制表格
yerr:误差线
xerr
stacked:是否堆积,在折线图和柱状图中默认为False,在区域图中默认为True
sort_columns:对列名称进行排序,默认为False
secondary_y:设置第二个y轴(右辅助y轴),默认为False
mark_right : 当使用secondary_y轴时,在图例中自动用“(right)”标记列标签 ,默认True
x_compat:适配x轴刻度显示,默认为False。设置True可优化时间刻度的显示
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df3 = pd.DataFrame(
    {
        "a": np.random.randn(1000) + 1,
        "b": np.random.randn(1000),
        "c": np.random.randn(1000) - 1,
    },
    columns=["a", "b", "c"],
)

# alpha设置透明度
df3.plot.hist(alpha=0.5)

# 设置坐标轴显示负号
plt.rcParams['axes.unicode_minus'] = False
# 显示图形
plt.show()

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

ix3 = pd.MultiIndex.from_arrays([['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'], ['foo', 'foo', 'bar', 'bar', 'foo', 'foo', 'bar', 'bar']], names=['letter', 'word'])
df3 = pd.DataFrame({'data1': [3, 2, 4, 3, 2, 4, 3, 2], 'data2': [6, 5, 7, 5, 4, 5, 6, 5]}, index=ix3)
# 分组
gp3 = df3.groupby(level=('letter', 'word'))
means = gp3.mean()
errors = gp3.std()
means.plot.bar(yerr=errors,rot=0)
plt.show()

参考文献

  1. 行远见大』Python 进阶篇:Pandas 库
  2. 解密 DataFrame|Pandas 数据操作的全面指南
  3. 一文教会你pandas plot各种绘图

标签:None,False,Python,DataFrame,df,默认,print,操作
From: https://www.cnblogs.com/haohai9309/p/17863172.html

相关文章

  • 聪明办法学python-11.27——11.29笔记打卡
    一、python中条件语句的应用总体代码结构为:ifTrue:dosomethingelse:doother简单描述为“True”为条件,当条件为真的时候,执行“dosomething”,否则就执行“doother”。例如:任务:实现一个函数,返......
  • 【Python】【OpenCV】傅里叶变换
    之前的随笔中使用了C++来编写算法底层逻辑,这次我们直接使用OpenCV和Numpy和Scipy所提供的方法直接调用实现1importcv22importnumpy3fromscipyimportndimage45kernel_3=numpy.array([6[-1,-1,-1],7[-1,8,-1],8[-1,-1,-1]9])......
  • 五、文件系统组成和基本操作
    1、Linux文件系统结构Linux:是一个单根倒树状的文件系统结构Windows:是多根多树状的文件系统结构文件系统从根目录开始,表示为一个单独的‘/’字符文件命名大小写敏感路径以‘/’为分隔2、Linux重要目录/root:超级用户root的家目录(用户文件默认存放的位置)......
  • 聪明办法学Python_task3_11.27-11.28
    聪明办法学Python_task3_11.27-11.28聪明办法学Python_task3_11.27-11.281.task05条件1.1if-else语句1.2if-else推导式1.3match-case语句2.talk01代码风格1.task05条件1.1if-else语句分为if、if-else、if-elif-elseif条件1:语句1elif条件2:......
  • 聪明办法学Python Task05&选学01
    条件CONDITIONALSif语句语法为:if条件:选择执行的语句#要有缩进,一般为四个空格“如果”条件为True,就会去执行接下来的内容。“如果”条件为False,就跳过。*注意:*1.条件后面有冒号​2.if内部的语句需要有一个统一的*缩进*,一般为四个空格,特别注......
  • python基础_05_python基础【1】
    【一】注释语法【1】什么是注释注释就是就是对代码的解释说明,注释的内容不会被当作代码运行【2】为什么要注释增强代码的可读性【3】如何使用注释代码注释分单行和多行注释1、单行注释用#号,可以跟在代码的正上方或者正后方#这是一段通过“#+注释内容”创造的......
  • 【聪明办法学Python条件与判断】
    【聪明办法学Python条件与判断】if语句if-else推导式是Python中一种简洁而强大的语法,用于创建新的序列(如列表、集合、字典)的一种方法。Python中有三种主要的推导式:列表推导式、集合推导式和字典推导式。列表推导式:A=[list(map(int,input().split()))foriinrange(n)......
  • Python数据文件的读取——Pandas库的使用
    Pandas是一个强大的数据分析库,它提供了一个名为DataFrame的数据结构,类似于R中的data.frame。DataFrame是一个二维的、标签化的数据结构,可以包含不同数据类型的列。它提供了许多方便的功能,如数据选择、过滤、合并、排序等,使得数据分析和处理变得更加容易。Pandas的DataFra......
  • 使用cursor编写python脚本
    环境python3.7pycharmcursor需要安装pandas库python基本常用语法注释#后面写的是注释#单行注释变量python是一种弱类型的语言,一个变量得到类型可以变化变量名区分大小写#创建数据n1=1#整数n2=1.2#浮点数#字符串是用单引号括起来的,还可以用双引......
  • python基础之基本运算符
    参考网站​ 参考网站(菜鸟教程):https://www.runoob.com/python/python-operators.html算术运算符以下假设变量a=10,变量b=21:运算符描述实例+加-两个对象相加a+b输出结果31-减-得到负数或是一个数减去另一个数a-b输出结果-11*乘-两个数相乘......