私のデータフレームには、最低値としてゼロがあります。のパラメータprecisionとを使用しようとしていますが、小数点以下 1 桁の浮動小数点数ではなく整数で構成される間隔を取得できません。また、一番左の間隔をゼロで停止することもできません。include_lowestpandas.cut()
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style='white', font_scale=1.3)
df = pd.DataFrame(range(0,389,8)[:-1], columns=['value'])
df['binned_df_pd'] = pd.cut(df.value, bins=7, precision=0, include_lowest=True)
sns.pointplot(x='binned_df_pd', y='value', data=df)
plt.xticks(rotation=30, ha='right')
precision-1、0、および 1 に設定しようとしましたが、それらはすべて 1 つの小数浮動小数点数を出力します。ヘルプには、x-min と x-max の値が x-range の 0.1 % で拡張されていることが記載されていますが、この動作を何らかの形で抑制することができるpandas.cut()と思いました。include_lowest私の現在の回避策には、numpy のインポートが含まれます。
import numpy as np
bin_counts, edges = np.histogram(df.value, bins=7)
edges = [int(x) for x in edges]
df['binned_df_np'] = pd.cut(df.value, bins=edges, include_lowest=True)
sns.pointplot(x='binned_df_np', y='value', data=df)
plt.xticks(rotation=30, ha='right')
pandas.cut()numpyを使用せずに、間隔の境界として負でない整数を直接取得する方法はありますか?
編集:right=False指定すると、最小間隔が-0.4ではなく0にシフトすることに気付きました。include_lowest後者を変更しても と組み合わせて目に見える効果がないため、よりも優先されるようright=Falseです。次の間隔は、引き続き小数点 1 桁で指定されます。


