例如,如果我有一个列数据框架pandas.
A 20
B 20
C 15
D 10
E 10
F 8
G 7
H 5
I 5
我想让数据分布这样最大的75% 15%最后的10%是
A F H
B G I
C
D
E
是否有pandas函数可以使这个摘要更快?我需要使索引作为列名吗?因为我从df dataframe中获得了df.value_counts()的值
确切的输入和预期的输出并不完全清楚,但是假设这个DataFrame作为输入:
col
A 20
B 20
C 15
D 10
E 10
F 8
G 7
H 5
I 5
您可以使用以下命令获取索引字典:
import numpy as np
target = [75, 15, 10]
group = pd.cut(df['col'].cumsum(), bins=np.r_[0, np.cumsum(target)], labels=target)
df.index.groupby(group)
输出:{75: ['A', 'B', 'C', 'D', 'E'], 15: ['F', 'G'], 10: ['H', 'I']}