2015-10-17 48 views
1

建立在previous question上,我被告知pd.cut生成字符串。例如:Python:內省,我將如何驗證一系列值是字符串?

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。免費書籍thinkstats2github上有配套代碼和數據。

從'code'目錄中,您可以運行以下行來加載數據框。

import nsfg 
df = nsfg.ReadFemPreg() 
df 
+0

你可以檢查式(X)的循環? – Zero

回答

0

您可以將type功能的系列值:

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 
0

這應該工作:

isinstance(agepreg_cuts, str) 
+0

結果實際上是鍵/值對(我認爲),所以你的答案將無法正常工作。我已更新問題描述以更好地反映問題。 –

+0

@PhillipScottGivens你試過了嗎? – 2015-10-17 17:51:19

+0

是的,它返回False。 –

相關問題