如何将 DataFrame 排序到 bin 中,并保留每个 bin 的名称?

Gle*_*bov 3 python dataframe pandas

我有一个由以下代码生成的简单 DataFrame:

import pandas as pd
df = pd.DataFrame([[0.45, 0.34],
                   [0.51, 0.55],
                   [0.62, 0.48],
                   [0.71, 0.65],
                   [0.68, 0.79]],
                  columns = [0, 1],
                  index = list("ABCDE"))
print(df.to_string())
Run Code Online (Sandbox Code Playgroud)

我想把它变成 100 个 bin,如下所示:0 to 0.1, 0.1 to 0.2, ..., 0.9 to 1第一列和第二列相同(包括左侧的数字,但不包括右侧的数字)。此外,我希望每个容器都包含适合它的行的名称。我如何使用 pandas 或 numpy 来做到这一点?

Fel*_*nza 5

IIUC 你可以简单地使用pd.cut

df.apply(pd.cut, bins=np.linspace(0, 1, 101))                                                 
Run Code Online (Sandbox Code Playgroud)

输出:

              0             1
A  (0.44, 0.45]  (0.33, 0.34]
B   (0.5, 0.51]  (0.54, 0.55]
C  (0.61, 0.62]  (0.47, 0.48]
D   (0.7, 0.71]  (0.64, 0.65]
E  (0.67, 0.68]  (0.78, 0.79]
Run Code Online (Sandbox Code Playgroud)