繁体   English   中英

Python:pandas.cut 标签被忽略

[英]Python: pandas.cut labels are ignored

我想使用pandas.cut()在我的 pandas.DataFrame 中剪切一列,但未应用我放入labels参数的labels 让我给你看一个例子。

我有以下数据框:

>>> import pandas as pd
>>> df = pd.DataFrame({'x': [-0.009, 0.089, 0.095, 0.096, 0.198]})
>>> print(df)
       x
0 -0.009
1  0.089
2  0.095
3  0.096
4  0.198

我像这样剪切x列:

>>> bins = pd.IntervalIndex.from_tuples([(-0.2, -0.1), (-0.1, 0.0), (0.0, 0.1), (0.1, 0.2)])
>>> labels = [100, 200, 300, 400]
>>> df['x_cut'] = pd.cut(df['x'], bins, labels=labels)
>>> print(df)
       x        x_cut
0 -0.009  (-0.1, 0.0]
1  0.089   (0.0, 0.1]
2  0.095   (0.0, 0.1]
3  0.096   (0.0, 0.1]
4  0.198   (0.1, 0.2]

但是,我希望数据框看起来像这样:

   id      x  x_cut
0   6  0.089    200
1   6  0.089    300
2   6  0.095    300
3   6  0.096    300
4   6  0.098    400

我错过了什么? 如何获得带有正确标签的数据框?

这是错误问题 21233

对我来说,像 @anky_91 注释了由zip创建的字典映射的工作:

df['x_cut'] = pd.cut(df['x'], bins).map(dict(zip(bins, labels)))
print(df)
       x x_cut
0 -0.009   200
1  0.089   300
2  0.095   300
3  0.096   300
4  0.198   400

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM