Dan*_*ata 3 python quantile dataframe pandas
我有一个包含三列的数据框
| 一个 | 乙 | C |
我计算了分位数:
df.quantile(.25)
df.quantile(.75)
Run Code Online (Sandbox Code Playgroud)
我想根据一个简单的规则添加一个新的列Q分类使用'small', 'medium', 'large'。如果值小于 1 个四分位数,则很小;如果它大于 3 个四分位数,那么大,中间的所有东西都是中等的。
我试过使用 qcut 但它只接收一维输入。
谢谢
pd.qcut 是你的朋友。
pd.qcut(s, q=[0, .25, .75, 1], labels=['small', 'medium', 'large'])
Run Code Online (Sandbox Code Playgroud)
移动电源
print(s)
0 1
1 1
2 2
3 3
4 4
5 2
6 4
7 6
8 4
9 6
10 5
11 4
12 6
13 7
14 3
15 2
16 1
17 1
18 2
dtype: int64
print (pd.qcut(s, q=[0, .25, .75, 1], labels=['small', 'medium', 'large']))
0 small
1 small
2 small
3 medium
4 medium
5 small
6 medium
7 large
8 medium
9 large
10 large
11 medium
12 large
13 large
14 medium
15 small
16 small
17 small
18 small
dtype: category
Categories (3, object): [small < medium < large]
Run Code Online (Sandbox Code Playgroud)
对于 DataFrames,对每一列重复此操作apply:
df.apply(pd.qcut, q=[0, .25, .75, 1], labels=['small', 'medium', 'large'], axis=0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2310 次 |
| 最近记录: |