2016-10-13 104 views
0

我有一個MixIndex數據類型的MultiIndex數據框。其中一個索引列值具有尾隨空格。我如何去除這些索引列的尾部空白。這裏是示例代碼:pandas MultiIndex索引列中的空白空格值

import pandas as pd 
idx = pd.MultiIndex.from_product([['1.0'],['NY ','CA ']], names=['country_code','state']) 
df = pd.DataFrame({'temp':['78','85']},index = idx) 

一個解決方案是重置索引,剝離所需列的空格並再次設置索引。像下面這樣:

df = df.reset_index() 
df['state'] = df['state'].str.strip() 
df = df.set_index(['country_code','state'],drop=True) 

但這是一個迂迴的方式,有沒有一種更直接的方法來剝離索引本身的空白?

回答

1

您可以使用.index.set_levels().index.get_level_values()在特定的水平來操縱指數:

df.index.set_levels(df.index.get_level_values(level = 1).str.strip(), 
        level = 1, inplace=True) 

df.index 
# MultiIndex(levels=[['1.0'], ['NY', 'CA']], 
#   labels=[[0, 0], [1, 0]], 
#   names=['country_code', 'state']) 
1

到對方的回答相似:

df.index.set_levels(df.index.map(lambda x: (x[0], x[1].strip())), inplace=True)