2014-10-27 78 views
0

我有以下數據框:熊貓unicode的問題與ISIN

 CONV_FIELD 
0  u'Ignore' 
1  u'Ignore' 
2  u'Ignore' 
3  u'Ignore' 
4  u'Ignore' 
5  u'Ignore' 
6  u'Ignore' 
7  u'Ignore' 
8  u'Ignore' 
9  u'Ignore' 
10  u'Ignore' 
11  u'Ignore' 
12  u'Ignore' 
13  u'Ignore' 
14  u'Ignore' 
15  u'Ignore' 
16  u'Ignore' 
17  u'Other' 

我要排除所有從數據幀「忽略」,所以我這樣做:

df[~df.CONV_FIELD.isin([u'Ignore'])] 

然而,也許是因爲所有的CONV_FIELD列值似乎都是unicode,這個語句什麼都不做。我該如何解決?

P.S.還有其他列,數據幀比所示大得多。

回答

3

看起來有點奇怪,u'...'實際顯示出來,當你打印你的數據幀。這讓我懷疑你的字符串包含u'Ignore'。如果我EVAL這些字符串,我只是得到Ignore當我打印:

import ast 
df['conv_field_fixed'] = df.CONV_FIELD.map(ast.literal_eval) 
df 
Out[13]: 
    CONV_FIELD conv_field_fixed 
0 u'Ignore'   Ignore 
1 u'Ignore'   Ignore 
2 u'Ignore'   Ignore 
3 u'Ignore'   Ignore 
4 u'Ignore'   Ignore 
5 u'Ignore'   Ignore 
6 u'Ignore'   Ignore 
7 u'Ignore'   Ignore 
8 u'Ignore'   Ignore 
9 u'Ignore'   Ignore 
10 u'Ignore'   Ignore 
11 u'Ignore'   Ignore 
12 u'Ignore'   Ignore 
13 u'Ignore'   Ignore 
14 u'Ignore'   Ignore 
15 u'Ignore'   Ignore 
16 u'Ignore'   Ignore 
17 u'Other'   Other 

# If we look at the first item we see it is 
# still a unicode string: 
df.conv_field_fixed.iloc[0] 
Out[15]: u'Ignore' 

而且現在的子集的操作原理:

df[~df.conv_field_fixed.isin([u'Ignore'])] 
Out[14]: 
    CONV_FIELD conv_field_fixed 
17 u'Other'   Other 
+0

嗯,我收到此錯誤信息:*** IndentationError:意外縮進(,第1行)在df ['conv_field_fixed'] = df.CONV_FIELD.map(ast.literal_eval) – user308827 2014-10-27 23:57:58

+0

之後,並且語句中沒有縮進... – user308827 2014-10-27 23:59:57

+0

我的代碼在這裏也包含一些輸出,您應該只複製看起來像Python表達式的行,而不是'Out [14]:'行或打印的數據幀 – Marius 2014-10-28 00:00:11