Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧中高度倾斜数值变量的良好装箱函数_Python_Pandas - Fatal编程技术网

Python 数据帧中高度倾斜数值变量的良好装箱函数

Python 数据帧中高度倾斜数值变量的良好装箱函数,python,pandas,Python,Pandas,您能推荐一个好的函数,将给定的高度倾斜数据放入小于或等于所需数量的容器中,例如,如果我想将数据帧中的所有数值变量放入10个容器中,由于数据中有一些高度扭曲的变量,如只有5个可能值的离散变量,因此应将该变量拆分为5个存储箱。 我曾尝试在熊猫身上使用切割函数,但结果并不乐观。您能帮我找到一个好的函数来执行此操作吗。如果特定列只能接受特定值,您可以使用该系列的unique()方法确定此值,例如: import pandas as pd import matplotlib data_series =

您能推荐一个好的函数,将给定的高度倾斜数据放入小于或等于所需数量的容器中,例如,如果我想将数据帧中的所有数值变量放入10个容器中,由于数据中有一些高度扭曲的变量,如只有5个可能值的离散变量,因此应将该变量拆分为5个存储箱。
我曾尝试在熊猫身上使用切割函数,但结果并不乐观。您能帮我找到一个好的函数来执行此操作吗。

如果特定列只能接受特定值,您可以使用该系列的unique()方法确定此值,例如:

import pandas as pd
import matplotlib

data_series = pd.Series([0,1,2,2,2,1,1,1,0,0,0,0])
unique_vals = list(data_series.unique())
if len(unique_vals) > 0.95*(len(data_series)):
    #almost all values are unique - plot a normal histogram
    matplotlib.pyplot.hist(data_series)
else:
    #many non-unique values - put each discrete value in its own bin
    #bins specifies the edges of the bins - need an extra edge to create a bin for the maximal value
    bins = unique_vals + [max(unique_vals)+1]
    fig = matplotlib.pyplot.hist(data_series,bins=bins)
如果离散值的间距非常不均匀,这将产生一些奇怪的直方图

绘制离散情况的更自然的方法可能是使用条形图,您可以使用值计数(可能需要根据离散值的接近程度调整条形宽度):

matplotlib.pyplot.bar(data_series.value_counts().index,data_series.value_counts())