在previous question的基础上,我被告知pd.cut会产生字符串。例如:
agepreg_cuts = pd.cut(df['agepreg'],[0,20,25,30,pd.np.inf], right=False)
agepreg_cuts[0:10]
上面的代码会给我以下值
0 [30, inf)
1 [30, inf)
2 [0, 20)
3 [0, 20)
4 [0, 20)
5 [25, 30)
6 [25, 30)
7 [30, inf)
8 [25, 30)
9 [30, inf)
Name: agepreg, dtype: category
Categories (4, object): [[0, 20) < [20, 25) < [25, 30) < [30, inf)]
我被告知这些值(例如[25, 30)
)是字符串,因此我必须解析它以获取开始值和结束值。我如何验证这些确实是字符串?
作为参考,我使用的数据来自nsfg。免费图书thinkstats2包含github上的随附代码和数据。
来自&#39;代码&#39;目录,您可以运行以下行来加载数据帧。
import nsfg
df = nsfg.ReadFemPreg()
df
答案 0 :(得分:0)
这应该有效:
isinstance(agepreg_cuts, str)
答案 1 :(得分:0)
您可以将type
函数应用于Series值:
In [11]: agepreg_cuts.apply(type)
Out[11]:
0 <class 'str'>
1 <class 'str'>
2 <class 'str'>
3 <class 'str'>
4 <class 'str'>
5 <class 'str'>
6 <class 'str'>
7 <class 'str'>
8 <class 'str'>
9 <class 'str'>
dtype: object
In [12]: agepreg_cuts.apply(type).value_counts()
Out[12]:
<class 'str'> 10
dtype: int64