Python酷库之旅-第三方库Pandas(134)

目录

一、用法精讲

601、pandas.DataFrame.plot.pie方法

601-1、语法

601-2、参数

601-3、功能

601-4、返回值

601-5、说明

601-6、用法

601-6-1、数据准备

601-6-2、代码示例

601-6-3、结果输出

602、pandas.DataFrame.plot.scatter方法

602-1、语法

602-2、参数

602-3、功能

602-4、返回值

602-5、说明

602-6、用法

602-6-1、数据准备

602-6-2、代码示例

602-6-3、结果输出

603、pandas.DataFrame.boxplot方法

603-1、语法

603-2、参数

603-3、功能

603-4、返回值

603-5、说明

603-6、用法

603-6-1、数据准备

603-6-2、代码示例

603-6-3、结果输出

604、pandas.DataFrame.hist方法

604-1、语法

604-2、参数

604-3、功能

604-4、返回值

604-5、说明

604-6、用法

604-6-1、数据准备

604-6-2、代码示例

604-6-3、结果输出

605、pandas.DataFrame.sparse.density方法

605-1、语法

605-2、参数

605-3、功能

605-4、返回值

605-5、说明

605-6、用法

605-6-1、数据准备

605-6-2、代码示例

605-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

601、pandas.DataFrame.plot.pie方法
601-1、语法
# 601、pandas.DataFrame.plot.pie方法
pandas.DataFrame.plot.pie(**kwargs)
Generate a pie plot.

A pie plot is a proportional representation of the numerical data in a column. This function wraps matplotlib.pyplot.pie() for the specified column. If no column reference is passed and subplots=True a pie plot is drawn for each numerical column independently.

Parameters:
y
int or label, optional
Label or position of the column to plot. If not provided, subplots=True argument must be passed.

**kwargs
Keyword arguments to pass on to DataFrame.plot().

Returns:
matplotlib.axes.Axes or np.ndarray of them
A NumPy array is returned when subplots is True.
601-2、参数

601-2-1、y(可选,默认值为None)字符串或整数,指定用于绘制饼图的数据列名或列索引,如果没有指定,将使用索引的数据。

601-2-2、ax(可选,默认值为None)matplotlib.axes.Axes,指定绘图的子图(axes),如果未指定,将使用当前的子图。

601-2-3、figsize(可选,默认值为None)元组,指定图表的尺寸,格式为(宽度, 高度)。

601-2-4、labels(可选,默认值为None)列表,指定用于饼图的标签,如果未指定,将使用索引或列名。

601-2-5、colors(可选,默认值为None)列表或字符串,指定填充饼图的颜色,如果未提供,将使用默认颜色。

601-2-6、autopct(可选,默认值为None)字符串或函数,指定自动显示每个饼块的百分比格式,例如'%.2f'表示保留两位小数。

601-2-7、pandas.DataFrame.plot.pie(startangle=90)饼图开始角度(弧度)。

601-2-8、shadow(可选,默认值为False)布尔值,是否为饼图增加阴影效果。

601-2-9、labelsdistance(可选,默认值为None)浮点数,饼图标签的距离。

601-2-10、pctdistance(可选,默认值为None)浮点数,百分比显示的距离。

601-2-11、explode(可选,默认值为None)与DataFrame的长度相同的列表,指定 "爆炸" 出每块的偏移量。

601-2-12、wedgeprops(可选,默认值为None)字典,饼块的属性字典,例如{'edgecolor': 'w'}。

601-2-13、title(可选,默认值为None)字符串,设置饼图的标题。

601-2-14、legend(可选,默认值为False)布尔值,是否在饼图外部显示图例。

601-2-15、fontsize(可选)浮点数或字符串,表示刻度字号。

601-2-16、**kwargs(可选)其他关键字参数,传递给matplotlib.pyplot.pie()的其他参数。

601-3、功能

        使用DataFrame中的某一列或索引来绘制饼图,显示数据各部分的比例。

601-4、返回值

        返回一个matplotlib.axes.Axes对象,包含绘制的饼图。

601-5、说明

        无

601-6、用法
601-6-1、数据准备
601-6-2、代码示例
# 601、pandas.DataFrame.plot.pie方法
import pandas as pd
import matplotlib.pyplot as plt
# 创建样例数据
data = {'category': ['A', 'B', 'C', 'D'],
        'values': [23, 17, 35, 29]}
df = pd.DataFrame(data)
# 设置饼图参数
explode = [0, 0.1, 0, 0.1]  # "爆炸"第二和第四块
colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']  # 自定义颜色
wedgeprops = {'edgecolor': 'black'}  # 设置饼块边界颜色
# 绘制饼图
ax = df.plot.pie(
    y='values',                           # 使用 'values' 列的数据
    labels=df['category'],                # 使用 'category' 列作为标签
    figsize=(8, 8),                       # 设置图表尺寸
    autopct='%.2f%%',                     # 显示百分比,保留两位小数
    shadow=True,                          # 添加阴影效果
    startangle=90,                        # 饼图开始角度
    explode=explode,                      # 设置爆炸效果
    colors=colors,                        # 自定义颜色
    pctdistance=0.85,                     # 百分比与圆心的距离
    labeldistance=1.05,                   # 标签与圆心的距离
    wedgeprops=wedgeprops,                # 饼块属性
    fontsize=12,                          # 设置标签字体大小
    legend=True,                          # 显示图例
    title="Custom Pie Chart Example"      # 设置标题
)
# 显示图表
plt.show()
601-6-3、结果输出
# 601、pandas.DataFrame.plot.pie方法
见图1

图1:

602、pandas.DataFrame.plot.scatter方法
602-1、语法
# 602、pandas.DataFrame.plot.scatter方法
pandas.DataFrame.plot.scatter(x, y, s=None, c=None, **kwargs)
Create a scatter plot with varying marker point size and color.

The coordinates of each point are defined by two dataframe columns and filled circles are used to represent each point. This kind of plot is useful to see complex correlations between two variables. Points could be for instance natural 2D coordinates like longitude and latitude in a map or, in general, any pair of metrics that can be plotted against each other.

Parameters:
x
int or str
The column name or column position to be used as horizontal coordinates for each point.

y
int or str
The column name or column position to be used as vertical coordinates for each point.

s
str, scalar or array-like, optional
The size of each point. Possible values are:

A string with the name of the column to be used for marker’s size.

A single scalar so all points have the same size.

A sequence of scalars, which will be used for each point’s size recursively. For instance, when passing [2,14] all points size will be either 2 or 14, alternatively.

c
str, int or array-like, optional
The color of each point. Possible values are:

A single color string referred to by name, RGB or RGBA code, for instance ‘red’ or ‘#a98d19’.

A sequence of color strings referred to by name, RGB or RGBA code, which will be used for each point’s color recursively. For instance [‘green’,’yellow’] all points will be filled in green or yellow, alternatively.

A column name or position whose values will be used to color the marker points according to a colormap.

**kwargs
Keyword arguments to pass on to DataFrame.plot().

Returns:
matplotlib.axes.Axes
or numpy.ndarray of them.
602-2、参数

602-2-1、x(必须)字符串,表示要在横轴上绘制的列名。

602-2-2、y(必须)字符串,表示要在纵轴上绘制的列名。

602-2-3、s(可选,默认值为None)scalar或array-like,表示点的大小,可以是一个标量值(即所有点都使用的相同大小)或者是一个与数据点数量相同的数组,表示每个点的大小。

602-2-4、c(可选,默认值为None)scalar, array-like或对应色彩图的值,表示点的颜色,可以是单个颜色、颜色名称、RGB/RGBA值或者是一个值序列,值序列会映射到颜色上,也可以使用colormap来指定颜色映射。

602-2-5、**kwargs(可选)其他关键字参数,这些参数会被传递给底层的matplotlib函数,可以用于设置图表的其他特性,例如alpha、marker、label等。

602-3、功能

        该方法允许用户从DataFrame中的指定列生成散点图,通过视觉化展示x和y变量之间的关系。还可以使用s和c参数来表达其他数据信息,增强图形的可读性和信息量。

602-4、返回值

        返回一个matplotlib.axes.Axes对象,用于进一步的自定义和操作,例如添加标题、修改坐标轴标签、调整图表样式等。

602-5、说明

        无

602-6、用法
602-6-1、数据准备
602-6-2、代码示例
# 602、pandas.DataFrame.plot.scatter方法
import pandas as pd
import matplotlib.pyplot as plt
# 创建示例DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1],
    'Size': [100, 200, 300, 400, 500],
    'Color': [1, 2, 3, 4, 5]
}
df = pd.DataFrame(data)
# 绘制散点图
ax = df.plot.scatter(x='A', y='B', s='Size', c='Color', colormap='viridis')
plt.show()
602-6-3、结果输出
# 602、pandas.DataFrame.plot.scatter方法
见图2

图2:

 

603、pandas.DataFrame.boxplot方法
603-1、语法
# 603、pandas.DataFrame.boxplot方法
pandas.DataFrame.boxplot(column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, backend=None, **kwargs)
Make a box plot from DataFrame columns.

Make a box-and-whisker plot from DataFrame columns, optionally grouped by some other columns. A box plot is a method for graphically depicting groups of numerical data through their quartiles. The box extends from the Q1 to Q3 quartile values of the data, with a line at the median (Q2). The whiskers extend from the edges of box to show the range of the data. By default, they extend no more than 1.5 * IQR (IQR = Q3 - Q1) from the edges of the box, ending at the farthest data point within that interval. Outliers are plotted as separate dots.

For further details see Wikipedia’s entry for boxplot.

Parameters:
columnstr or list of str, optional
Column name or list of names, or vector. Can be any valid input to pandas.DataFrame.groupby().

bystr or array-like, optional
Column in the DataFrame to pandas.DataFrame.groupby(). One box-plot will be done per value of columns in by.

axobject of class matplotlib.axes.Axes, optional
The matplotlib axes to be used by boxplot.

fontsizefloat or str
Tick label font size in points or as a string (e.g., large).

rotfloat, default 0
The rotation angle of labels (in degrees) with respect to the screen coordinate system.

gridbool, default True
Setting this to True will show the grid.

figsizeA tuple (width, height) in inches
The size of the figure to create in matplotlib.

layouttuple (rows, columns), optional
For example, (3, 5) will display the subplots using 3 rows and 5 columns, starting from the top-left.

return_type{‘axes’, ‘dict’, ‘both’} or None, default ‘axes’
The kind of object to return. The default is axes.

‘axes’ returns the matplotlib axes the boxplot is drawn on.

‘dict’ returns a dictionary whose values are the matplotlib Lines of the boxplot.

‘both’ returns a namedtuple with the axes and dict.

when grouping with by, a Series mapping columns to return_type is returned.

If return_type is None, a NumPy array of axes with the same shape as layout is returned.

backendstr, default None
Backend to use instead of the backend specified in the option plotting.backend. For instance, ‘matplotlib’. Alternatively, to specify the plotting.backend for the whole session, set pd.options.plotting.backend.

**kwargs
All other plotting keyword arguments to be passed to matplotlib.pyplot.boxplot().

Returns:
result
See Notes.
603-2、参数

603-2-1、column(可选,默认值为None)str或list,指定要绘制箱型图的列名,可以是单个列名或列名列表。

603-2-2、by(可选,默认值为None)str或list,用于分类的列名,可以根据这个列上的不同值来绘制多个箱型图。

603-2-3、ax(可选,默认值为None)matplotlib.axes.Axes, 指定绘图的坐标轴对象,如果为None,方法会自动生成新的图形和坐标轴。

603-2-4、fontsize(可选,默认值为None)整数,设置坐标轴标签的字体大小。

603-2-5、rot(可选,默认值为0)整数,设置x轴标签的旋转角度,以便更好地可读。

603-2-6、grid(可选,默认值为True)布尔值,是否在图中显示网格线。

603-2-7、figsize(可选,默认值为None)元组,设定图形的宽和高,例如(宽, 高)的形式。

603-2-8、layout(可选,默认值为None)元组,设置子图的布局,例如(行数, 列数)。

603-2-9、return_type(可选,默认值为None)字符串,返回类型,可以设置为'axes'或'dict',决定返回的对象类型。

603-2-10、backend(可选,默认值为None)字符串,指定用于绘图的后端库。

603-2-11、**kwargs(可选)其他关键字参数,这些参数会传递给底层的matplotlib函数,可以用于设置箱型图的其他特性,例如color、patch_artist、boxprops等。

603-3、功能

        该方法用于生成箱型图,以展示给定列的数据的分布情况以及分类信息,通过by参数,可以根据某列的类别拆分数据,便于比较不同组之间的差异。

603-4、返回值

        返回一个matplotlib.axes.Axes对象或字典(如果return_type='dict'),如果指定了ax参数,返回的是这个ax对象;否则,返回生成的图形坐标轴,可以用于进一步的图形自定义。

603-5、说明

        无

603-6、用法
603-6-1、数据准备
603-6-2、代码示例
# 603、pandas.DataFrame.boxplot方法
import pandas as pd
import matplotlib.pyplot as plt
# 创建示例DataFrame
data = {
    'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
    'Value': [10, 15, 10, 20, 5, 25],
}
df = pd.DataFrame(data)
# 绘制箱型图
ax = df.boxplot(column='Value', by='Category', grid=True, fontsize=12, figsize=(8, 6))
plt.suptitle('')  # 去掉默认的标题
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
603-6-3、结果输出
# 603、pandas.DataFrame.boxplot方法
见图3

图3:

 

604、pandas.DataFrame.hist方法
604-1、语法
# 604、pandas.DataFrame.hist方法
pandas.DataFrame.hist(column=None, by=None, grid=True, xlabelsize=None, xrot=None, ylabelsize=None, yrot=None, ax=None, sharex=False, sharey=False, figsize=None, layout=None, bins=10, backend=None, legend=False, **kwargs)
Make a histogram of the DataFrame’s columns.

A histogram is a representation of the distribution of data. This function calls matplotlib.pyplot.hist(), on each series in the DataFrame, resulting in one histogram per column.

Parameters:
data
DataFrame
The pandas object holding the data.

column
str or sequence, optional
If passed, will be used to limit data to a subset of columns.

by
object, optional
If passed, then used to form histograms for separate groups.

grid
bool, default True
Whether to show axis grid lines.

xlabelsize
int, default None
If specified changes the x-axis label size.

xrot
float, default None
Rotation of x axis labels. For example, a value of 90 displays the x labels rotated 90 degrees clockwise.

ylabelsize
int, default None
If specified changes the y-axis label size.

yrot
float, default None
Rotation of y axis labels. For example, a value of 90 displays the y labels rotated 90 degrees clockwise.

ax
Matplotlib axes object, default None
The axes to plot the histogram on.

sharex
bool, default True if ax is None else False
In case subplots=True, share x axis and set some x axis labels to invisible; defaults to True if ax is None otherwise False if an ax is passed in. Note that passing in both an ax and sharex=True will alter all x axis labels for all subplots in a figure.

sharey
bool, default False
In case subplots=True, share y axis and set some y axis labels to invisible.

figsize
tuple, optional
The size in inches of the figure to create. Uses the value in matplotlib.rcParams by default.

layout
tuple, optional
Tuple of (rows, columns) for the layout of the histograms.

bins
int or sequence, default 10
Number of histogram bins to be used. If an integer is given, bins + 1 bin edges are calculated and returned. If bins is a sequence, gives bin edges, including left edge of first bin and right edge of last bin. In this case, bins is returned unmodified.

backend
str, default None
Backend to use instead of the backend specified in the option plotting.backend. For instance, ‘matplotlib’. Alternatively, to specify the plotting.backend for the whole session, set pd.options.plotting.backend.

legend
bool, default False
Whether to show the legend.

**kwargs
All other plotting keyword arguments to be passed to matplotlib.pyplot.hist().

Returns:
matplotlib.AxesSubplot or numpy.ndarray of them.
604-2、参数

604-2-1、column(可选,默认值为None)字符串或列表,指定要绘制直方图的列名,可以是单个列名或列名列表。

604-2-2、by(可选,默认值为None)字符串或列表,用于分类的列名,可以根据这个列上的不同值来绘制多个直方图。

604-2-3、grid(可选,默认值为True)布尔值,是否在图中显示网格线。

604-2-4、xlabelsize(可选,默认值为None)整数,设置x轴标签的字体大小。

604-2-5、xrot(可选,默认值为None)整数,设置x轴标签的旋转角度,以便更好地可读。

604-2-6、ylabelsize(可选,默认值为None)整数,设置y轴标签的字体大小。

604-2-7、yrot(可选,默认值为None)整数,设置y轴标签的旋转角度。

604-2-8、ax(可选,默认值为None)matplotlib.axes.Axes,指定绘图的坐标轴对象,如果为None,方法会自动生成新的图形和坐标轴。

604-2-9、sharex(可选,默认值为False)布尔值,如果为True,所有的子图将共享相同的x轴。

604-2-10、sharey(可选,默认值为False)布尔值,如果为True,所有的子图将共享相同的y轴。

604-2-11、figsize(可选,默认值为None)元组,设置图形的宽和高,例如(宽, 高)的形式。

604-2-12、layout(可选,默认值为None)元组,设置子图的布局,例如(行数, 列数)。

604-2-13、bins(可选,默认值为10)整数,设置直方图的区间(箱子的数量),影响数据的分组方式。

604-2-14、backend(可选,默认值为None)字符串,指定用于绘图的后端库。

604-2-15、legend(可选,默认值为False)布尔值,是否显示图例。

604-2-16、**kwargs(可选)其他关键字参数,这些参数会传递给底层的matplotlib函数,可以用于设置直方图的其他特性,例如color、alpha、edgecolor等。

604-3、功能

        该方法用于生成直方图,以展示给定列的数据在不同取值范围内的频率分布,通过by参数,可以根据某列的类别拆分数据,便于比较不同组之间的数据分布特征。

604-4、返回值

        返回一个numpy.ndarray,其中包含了生成的Axes对象,如果by参数被使用,返回的数组形状将取决于分类信息的独特值数量。

604-5、说明

        无

604-6、用法
604-6-1、数据准备
604-6-2、代码示例
# 604、pandas.DataFrame.hist方法
import pandas as pd
import matplotlib.pyplot as plt
# 创建示例DataFrame
data = {
    'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
    'Value': [10, 15, 10, 20, 5, 25],
}
df = pd.DataFrame(data)
# 绘制直方图
ax = df.hist(column='Value', by='Category', bins=5, grid=True, figsize=(10, 6))
plt.suptitle('')  # 去掉默认的标题
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
604-6-3、结果输出
# 604、pandas.DataFrame.hist方法
见图4

图4:

 

605、pandas.DataFrame.sparse.density方法
605-1、语法
# 605、pandas.DataFrame.sparse.density方法
pandas.DataFrame.sparse.density
Ratio of non-sparse points to total (dense) data points.
605-2、参数

        无

605-3、功能

        用于计算稀疏DataFrame中非缺失值的比例,以此来反映整个DataFrame的稀疏度,密度值将会显示整个DataFrame中有效数据的比例。

605-4、返回值

        返回值是一个浮点数,表示非缺失值的比例,值的范围从0到1,其中0表示所有值都为缺失值,1表示没有缺失值。

605-5、说明

        无

605-6、用法
605-6-1、数据准备
605-6-2、代码示例
# 605、pandas.DataFrame.sparse.density方法
import pandas as pd
import numpy as np
# 创建一个稀疏DataFrame
data = {
    'A': [1, np.nan, 3],
    'B': [np.nan, np.nan, 6],
    'C': [7, 8, np.nan]
}
sparse_df = pd.DataFrame(data).astype(pd.SparseDtype("float", np.nan))
# 获取稀疏度
density = sparse_df.sparse.density
print(f"稀疏性密度: {density:.2f}")
605-6-3、结果输出
# 605、pandas.DataFrame.sparse.density方法
# 稀疏性密度: 0.56

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇夜光杯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值