时间:2021-05-22
Pandas是Python中非常常用的数据处理工具,使用起来非常方便。它建立在NumPy数组结构之上,所以它的很多操作通过NumPy或者Pandas自带的扩展模块编写,这些模块用Cython编写并编译到C,并且在C上执行,因此也保证了处理速度。
今天我们就来体验一下它的强大之处。
1.创建数据
使用pandas可以很方便地进行数据创建,现在让我们创建一个5列1000行的pandas DataFrame:
mu1, sigma1 = 0, 0.1mu2, sigma2 = 0.2, 0.2n = 1000df = pd.DataFrame( { "a1": pd.np.random.normal(mu1, sigma1, n), "a2": pd.np.random.normal(mu2, sigma2, n), "a3": pd.np.random.randint(0, 5, n), "y1": pd.np.logspace(0, 1, num=n), "y2": pd.np.random.randint(0, 2, n), })生成如下所示的数据:
2.绘制图像
Pandas 绘图函数返回一个matplotlib的坐标轴(Axes),所以我们可以在上面自定义绘制我们所需要的内容。比如说画一条垂线和平行线。这将非常有利于我们:
1.绘制平均线
2.标记重点的点
import matplotlib.pyplot as pltax = df.y1.plot()ax.axhline(6, color="red", linestyle="--")ax.axvline(775, color="red", linestyle="--")plt.show()我们还可以自定义一张图上显示多少个表:
fig, ax = plt.subplots(2, 2, figsize=(14,7))df.plot(x="index", y="y1", ax=ax[0, 0])df.plot.scatter(x="index", y="y2", ax=ax[0, 1])df.plot.scatter(x="index", y="a3", ax=ax[1, 0])df.plot(x="index", y="a1", ax=ax[1, 1])plt.show()3.绘制直方图
Pandas能够让我们用非常简单的方式获得两个图形的形状对比:
df[["a1", "a2"]].plot(bins=30, kind="hist")plt.show()还能允许多图绘制:
df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True)plt.show()当然,生成折线图也不在画下:
df[['a1', 'a2']].plot(by=df.y2, subplots=True)plt.show()4.线性拟合
Pandas还能用于拟合,让我们用pandas找出一条与下图最接近的直线:
最小二乘法计算和该直线最短距离:
df['ones'] = pd.np.ones(len(df))m, c = pd.np.linalg.lstsq(df[['index', 'ones']], df['y1'], rcond=None)[0]根据最小二乘的结果绘制y和拟合出来的直线:
df['y'] = df['index'].apply(lambda x: x * m + c)df[['y', 'y1']].plot()plt.show()到此这篇关于pandas数据处理之绘图的实现的文章就介绍到这了,更多相关pandas 绘图内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
项目实现知识点:Pandas库及pyecharts库Pandas:数据分析和处理工具。pd.read_csv():读取csv文件。pyecharts:绘图库,提
Numpy、Pandas是Python数据处理中经常用到的两个框架,都是采用C语言编写,所以运算速度快。Matplotlib是Python的的画图工具,可以把之
本文实例讲述了Python实现从SQL型数据库读写dataframe型数据的方法。分享给大家供大家参考,具体如下:Python的pandas包对表格化的数据处理
本文实例讲述了Python图像处理之直线和曲线的拟合与绘制。分享给大家供大家参考,具体如下:在数据处理和绘图中,我们通常会遇到直线或曲线的拟合问题,python
我们在数据处理,往往不小心,pandas会“主动”加上行和列的名称,我现在就遇到了这个问题。这个是pandas中to_csv生成的数据各种拼接之后的最终数据(默