Pandas 切割多列数据

7

我想对多列应用一个bin。

a = [1, 2, 9, 1, 5, 3]
b = [9, 8, 7, 8, 9, 1]

c = [a, b]

print(pd.cut(c, 3, labels=False))

这个很棒并且可以创建:

[[0 0 2 0 1 0]
[2 2 2 2 2 0]]

然而,我想使用 "cut" 函数创建一个包含数字的数据框,并按照以下方式将其进行分组。
   Values  bin
0       1    0
1       2    0
2       9    2
3       1    0
4       5    1
5       3    0


   Values  bin
0       9    2
1       8    2
2       7    2
3       8    2
4       9    2
5       1    0 

这是一个我想要实现的简单示例。实际情况是,我有63个不同的数据框,其中a和b是每个数据框中的某一列的示例。

1个回答

7
使用列表推导式和 zip 来构建数据框列表 -
c = [a, b]
r = pd.cut(c, 3, labels=False)

df_list = [pd.DataFrame({'Values' : v, 'Labels' : l}) for v, l in zip(c, r)]

df_list

[   Labels  Values
 0       0       1
 1       0       2
 2       2       9
 3       0       1
 4       1       5
 5       0       3,    Labels  Values
 0       2       9
 1       2       8
 2       2       7
 3       2       8
 4       2       9
 5       0       1]

4
非常感谢您的夸奖。我已经阅读了这个问题两次,除非看到你的回答,否则我无法理解OP想要什么。 - MaxU - stand with Ukraine
1
@MaxU 当我有你和Jez这样同样擅长迅速解决问题的人时,我必须发挥出最佳状态:] - cs95
感谢您,对于造成的困惑表示歉意。描述并不是我的强项。 - ben121

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接