我有一个由以下代码生成的简单 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())
我想把它变成 100 个这样的箱子:0 到 0.1,0.1 到 0.2,...,0.9 到 1
第一列和第二列相同(包括左边的数字,但不包括右边的数字)。此外,我希望每个 bin 都包含适合它的行的名称。如何使用 pandas 或 numpy 来实现?
最佳答案
IIUC 你可以简单地使用 pd.cut
:
df.apply(pd.cut, bins=np.linspace(0, 1, 101))
输出:
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]
关于python - 如何将 DataFrame 分类到 bin 中,保留每个 bin 的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70770442/