放弃'#NULL!'来自df

时间:2014-02-21 15:26:11

标签: python excel pandas dataframe

我正在尝试导入一些简单的Likert-scale数据,并使用堆叠的水平条形图绘制它。

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! VALUES吗?

我有〜{3000条#NULL!条目的记录

1 个答案:

答案 0 :(得分: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!中使用na_values='#NULL!'导入时指定pd.read_excel()是NaN。