有没有办法读取所有行,直到遇到使用Python Pandas

时间:2017-05-17 16:35:00

标签: python excel python-2.7 pandas

我在excel中有很多行,并且在空行之后行填充了垃圾值。 有没有办法使用Python pandas只读取excel中第一个空行之前的记录。

1 个答案:

答案 0 :(得分:4)

我不知道read_excel是否可以这样做。如果从excel导入空行,那些行的列值将用NaN填充,然后您可以选择值,直到第一行填充所有NaN。

我假设你的数据是这样的,你有一个空行,后面的数据是垃圾(我包括多个空行和后面的垃圾) enter image description here

df = pd.read_excel(r'Book1.xlsx') # read the file

print df 
'''
   col1 col2 col3
0     1    2    3
1     1    2    3
2     1    2    3
3     1    2    3
....
10    1    2    3
11  NaN  NaN  NaN
12    x    x    x
....
18  NaN  NaN  NaN
19  NaN  NaN  NaN
20    y    y    y
21    y    y    y
....
'''

first_row_with_all_NaN = df[df.isnull().all(axis=1) == True].index.tolist()[0]
# gives me the first row number of the row that has all the values to be NaN. 
'''
11
'''

print df.loc[0:first_row_with_all_NaN-1]

# then I use loc to select the rows from 0 to  first row with all NaN's-1

'''
 col1 col2 col3
0     1    2    3
1     1    2    3
2     1    2    3
3     1    2    3
4     1    2    3
5     1    2    3
6     1    2    3
7     1    2    3
8     1    2    3
9     1    2    3
10    1    2    3
'''