2014-02-21 39 views
0

我試圖導入一些簡單的likert尺度數據並使用堆疊的水平條形圖進行繪圖。放下'#NULL!'從df

import pandas as pd 

path = "C:\\..." 
datafile_name = "Motivators.xlsx" 
datafile = path + datafile_name 

xls_file = pd.ExcelFile(datafile) 
df = xls_file.parse('Sheet1') 
df = df.drop('Email_Address', 1) 

print df[:10] 
df.plot(kind='barh', stacked=True) 

我不知道究竟是如何pd.ExcelFile()的作品,但是是有下探#NULL!值的選擇嗎?

我〜3000條記錄與#NULL!

回答

2

更換#NULL!NaN秒,然後dropna

In [1]: df = pd.DataFrame([1, 2, 3, "#NULL!"]) 

In [2]: df 
Out[2]: 
     0 
0  1 
1  2 
2  3 
3 #NULL! 

[4 rows x 1 columns] 

In [3]: df.replace('#NULL!', np.nan) 
Out[3]: 
    0 
0 1 
1 2 
2 3 
3 NaN 

[4 rows x 1 columns] 

In [4]: df.replace('#NULL!', np.nan).dropna() 
Out[4]: 
    0 
0 1 
1 2 
2 3 

[3 rows x 1 columns] 

更妙的是指定#NULL!是NaN在pd.read_excel()na_values='#NULL!'導入時。