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