1、digitize():主要用于将一组数据进行分区。
主要参数:
返回值:所属区间的上限在bins中的索引。
import numpy as np
import pandas as pd
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
df
#创建分区
bins=np.arange(135,215,5)#注意:bins数据是有要求的,bins内的数据一定要是降序或者升序的数据,不能是一堆无序数据。
#digitize
indices=np.digitize(df['a'],bins) #返回值为每个值所属区间的索引。
print('------digitize算法:返回索引------')
indices
#打上标签
df['a1']=[str(bins[i-1])+"~"+str(bins[i]) for i in indices]
df
输出:
接下来可根据分区进行汇总操作:
df.groupby(['a1'])['a'].count().reset_index()
输出:
2、cut():主要用于将一组数据进行分区。
主要参数:
返回值:各个数据所在bins中的区间。
import numpy as np
import pandas as pd
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
df
#创建分区
bins=np.arange(135,215,5)#注意:bins数据是有要求的,bins内的数据一定要是降序或者升序的数据,不能是一堆无序数据。
print('------cut算法------')
#cut算法
df['a2']=pd.cut(df['a'],bins
# ,labels=['bad','medium','good','awesome']
)
df
输出:
1、qcut():主要用于将一组数据进行分区,是cut里面的特例,是以分位数进行分区的。
主要参数:
返回值:各个数据所在的区间。
import numpy as np
import pandas as pd
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
df
print('------qcut算法------')
#qcut算法
df['a3']=pd.qcut(df['a'],4
# ,labels=['bad','medium','good','awesome']
)
df
输出:
2、quantile():主要用于将一组数据进行分区,计算沿指定轴的数据的第q个分位数。
主要参数:
a :输入数组或可以转换为数组的对象。
q :要计算的分位数或分位数序列,必须在0到1之间(含0和1)。
axis : 可选,用于计算分位数的一个或多个轴。默认值是沿数组的展平版本计算分位数。
返回值:返回第q个分位数或者是一组分位数序列。
import numpy as np
import pandas as pd
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
df
#创建分位数序列
bins=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
#quantile
indices=np.quantile(df['a'],bins) #返回值为各个分位数的具体值。
print('------quantile算法:返回分位数值------')
indices
输出: