我正在慢慢地从R转向python + pandas,我面临着一个我无法解决的问题......
我需要将一列中的值离散化,方法是将它们分配给 bin 并将具有这些 bin 名称的列添加到 original DataFrame
。我正在尝试使用pandas.qcut
,但生成的Categorical
对象似乎与DataFrame
.
一个例子:
import pandas as pd
df1 = pd.DataFrame(np.random.randn(10), columns=['a'])
df1['binned_a'] = pd.qcut(df1['a'],4)
现在,当尝试调用describe
时,df1
我看不到新列:
>>> df1.describe()
a
count 10.000000
mean 0.594072
std 1.109981
min -0.807307
25% -0.304550
50% 0.545839
75% 1.189487
max 2.851922
但是,它显然在那里:
>>> df1
a binned_a
0 0.190015 (-0.305, 0.546]
1 0.140227 (-0.305, 0.546]
2 1.380000 (1.189, 2.852]
3 -0.522530 [-0.807, -0.305]
4 -0.452810 [-0.807, -0.305]
5 2.851922 (1.189, 2.852]
6 -0.807307 [-0.807, -0.305]
7 0.901663 (0.546, 1.189]
8 1.010334 (0.546, 1.189]
9 1.249205 (1.189, 2.852]
我究竟做错了什么?我想要的结果是得到一个包含 4 个唯一字符串值的列来描述这些 bin(如 R 中的因子)。
编辑:
正如 Dan 正确发现的那样,该summary()
方法不会显示包含纯文本数据的列,因此解决了神秘的问题 :) 非常感谢!