pandas分区间,算频率的实例

如下所示:

import pandas as pd
path='F:/python/python数据分析与挖掘实战/图书配套数据、代码/chapter3/demo/data/catering_fish_congee.xls'
data=pd.read_excel(path,header=None,index_col=0)
data.index.name='日期'
data.columns=['销售额(元)']

xse=data['销售额(元)']
print(xse.max())
print(xse.min())
print(xse.max()-xse.min())

fanwei=list(range(0,4500,500))
fenzu=pd.cut(xse.values,fanwei,right=False)#分组区间,长度91
print(fenzu.codes)#标签
print(fenzu.categories)#分组区间,长度8
pinshu=fenzu.value_counts()#series,区间-个数
print(pinshu.index)

import matplotlib.pyplot as plt
pinshu.plot(kind='bar')
#plt.text(0,29,str(29))

qujian=pd.cut(xse,fanwei,right=False)
data['区间']=qujian.values
data.groupby('区间').median()
data.groupby('区间').mean()#每个区间平均数

pinshu_df=pd.DataFrame(pinshu,columns=['频数'])
pinshu_df['频率f']=pinshu_df / pinshu_df['频数'].sum()
pinshu_df['频率%']=pinshu_df['频率f'].map(lambda x:'%.2f%%'%(x*100))

pinshu_df['累计频率f']=pinshu_df['频率f'].cumsum()
pinshu_df['累计频率%']=pinshu_df['累计频率f'].map(lambda x:'%.4f%%'%(x*100))

In[158]: pinshu_df
Out[158]:
       频数    频率f   频率%   累计频率f   累计频率%
[0, 500)   29 0.318681 31.87% 0.318681  31.8681%
[500, 1000)  20 0.219780 21.98% 0.538462  53.8462%
[1000, 1500) 12 0.131868 13.19% 0.670330  67.0330%
[1500, 2000) 12 0.131868 13.19% 0.802198  80.2198%
[2000, 2500)  8 0.087912  8.79% 0.890110  89.0110%
[2500, 3000)  3 0.032967  3.30% 0.923077  92.3077%
[3000, 3500)  4 0.043956  4.40% 0.967033  96.7033%
[3500, 4000)  3 0.032967  3.30% 1.000000 100.0000%

以上这篇pandas分区间,算频率的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python科学计算之Pandas详解

    起步 Pandas最初被作为金融数据分析工具而开发出来,因此 pandas 为时间序列分析提供了很好的支持. Pandas 的名称来自于面板数据(panel data)和python数据分析 (data analysis) .panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型. 在我看来,对于 Numpy 以及 Matplotlib ,Pandas可以帮助创建一个非常牢固的用于数据挖掘与分析的基础.而Scipy当然是另一个主要的也十分出色的科学计

  • 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='

  • pandas分区间,算频率的实例

    如下所示: import pandas as pd path='F:/python/python数据分析与挖掘实战/图书配套数据.代码/chapter3/demo/data/catering_fish_congee.xls' data=pd.read_excel(path,header=None,index_col=0) data.index.name='日期' data.columns=['销售额(元)'] xse=data['销售额(元)'] print(xse.max()) print(x

  • Pandas时间序列:重采样及频率转换方式

    如下所示: import pandas as pd import numpy as np 一.介绍 重采样(resampling)指的是将时间序列从一个频率转换到另一个频率的处理过程: 将高频率(间隔短)数据聚合到低频率(间隔长)称为降采样(downsampling): 将低频率数据转换到高频率则称为升采样(unsampling): 有些采样即不是降采样也不是升采样,例如将W-WED(每周三)转换为W-FRI: 二.resample方法–转换频率的主力函数 rng = pd.date_range

  • python数据处理——对pandas进行数据变频或插值实例

    这里首先要介绍官方文档,对python有了进一步深度的学习的大家们应该会发现,网上不管csdn或者简书上还是什么地方,教程来源基本就是官方文档,所以英语只要还过的去,推荐看官方文档,就算不够好,也可以只看它里面的sample就够了 好了,不说废话,看我的代码: import pandas as pd import numpy as np rng = pd.date_range('20180101', periods=40) ts = pd.Series(np.arange(1,41), inde

  • python 基于卡方值分箱算法的实现示例

    原理很简单,初始分20箱或更多,先确保每箱中都含有0,1标签,对不包含0,1标签的箱向前合并,计算各箱卡方值,对卡方值最小的箱向后合并,代码如下 import pandas as pd import numpy as np import scipy from scipy import stats def chi_bin(DF,var,target,binnum=5,maxcut=20): ''' DF:data var:variable target:target / label binnum:

  • pandas中去除指定字符的实例

    例表: 假如想要去掉表中的'#',':'而且以'#'和':'为分割线切割数据: #将dfxA_2的每一个分隔符之间的数据提出来 col1=dfxA_2['travel_seq'].str.split('#').str[0] col2=dfxA_2['travel_seq'].str.split('#').str[1] col3=dfxA_2['travel_seq'].str.split('#').str[2].str.split(';').str[0] 这里只是部分代码,实际情况按需求可以灵活

  • 对pandas的算术运算和数据对齐实例详解

    pandas可以对不同索引的对象进行算术运算,如果存在不同的索引对,结果的索引就是该索引对的并集. 一.算术运算 a.series的加法运算 s1 = Series([1,2,3],index=["a","b","c"]) s2 = Series([4,5,6],index=["a","c","e"]) print(s1+s2) ''' a 5.0 b NaN c 8.0 e NaN '

  • python pandas 对时间序列文件处理的实例

    如下所示: import pandas as pd from numpy import * import matplotlib.pylab as plt import copy def read(filename): dat=pd.read_csv(filename,iterator=True) loop = True chunkSize = 1000000 R=[] while loop: try: data = dat.get_chunk(chunkSize) data=data.loc[:

  • 在Python中pandas.DataFrame重置索引名称的实例

    例子: 创建DataFrame ### 导入模块 import numpy as np import pandas as pd import matplotlib.pyplot as plt test = pd.DataFrame({'a':[11,22,33],'b':[44,55,66]}) """ a b 0 11 44 1 22 55 2 33 66 """ 更改列名方法一:rename test.rename(columns={'a':

  • python-视频分帧&多帧合成视频实例

    我就废话不多说了,直接上代码吧! 1.视频分帧: import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = True while success: success,image = vidcap.read() cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file if c

  • pandas和spark dataframe互相转换实例详解

    这篇文章主要介绍了pandas和spark dataframe互相转换实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 from pyspark.sql import SparkSession # 初始化spark会话 spark = SparkSession \ .builder \ .getOrCreate() spark_df = spark.createDataFrame(pandas_df) spark的dataframe转pa

随机推荐