2016-04-28 134 views
0
import pandas as pd 
index = pd.MultiIndex.from_tuples([(1,2, None), (1,2,3)]) 
print(index.get_level_values(2)) 

給出數據類型的熊貓多指標

Int64Index([楠,3.0],D型細胞= 'float64')

然而,我想獲得

Int64Index([nan,3],dtype ='object')

也就是說,Pandas不應該自動更改數據類型。我怎樣才能做到這一點?

回答

0

我想你可以通過astype通過.get第一值電平值轉換爲stringstr.split它。然後創建新的MultiIndex

#change multiindex 
new = zip(index.get_level_values(0), 
      index.get_level_values(1), 
      index.get_level_values(2).astype(str).str.split('.').str.get(0)) 


new_index = pd.MultiIndex.from_tuples(new) 
print (new_index) 
MultiIndex(levels=[[1], [2], [u'3', u'nan']], 
      labels=[[0, 0], [0, 0], [1, 0]]) 

print(new_index.get_level_values(2)) 
Index([u'nan', u'3'], dtype='object')