Python-Pandas-忽略空格后的数据

Python-Pandas-忽略空格后的数据,python,excel,pandas,Python,Excel,Pandas,我正在开发一个从excel文件中读取数据的程序。excel文件中有我感兴趣的数据行,然后是空白行,然后是几行不相关的数据,我想从数据框中排除这些数据 这就是我的数据框的外观: Ingredient Pounds Used 0 1705 8800.00 1 ZR100S 2934.00 2 *STOCK 321.00 17 Gravity 1.08 如何忽略末尾的行?我只想要第0-2行 我尝试了一些

我正在开发一个从excel文件中读取数据的程序。excel文件中有我感兴趣的数据行,然后是空白行,然后是几行不相关的数据,我想从数据框中排除这些数据

这就是我的数据框的外观:

   Ingredient  Pounds Used
0        1705      8800.00
1      ZR100S      2934.00
2      *STOCK       321.00
17    Gravity         1.08 
如何忽略末尾的行?我只想要第0-2行


我尝试了一些方法,但不幸的是,末尾的行数不同,它们与我想要的行的距离也不同,所以我不能只剪掉尾端。我需要能够沿着行向下移动,直到找到一个空白行,然后停止。

首先重置索引,使当前索引成为一列。这是因为df.index不接受.shift() 检查索引中的连续行是否连续

df.reset_index(inplace=True)# reset index
df[(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))].set_index('index')
一步一步

#step 1
df.reset_index(inplace=True)# reset index

#step 2
(df['index'].eq((df['index'].shift(-1))-1))#First consecutive check
(df['index'].eq((df['index'].shift(1))+1))#Second consecutive check

#step 3
#(first)or(second) expressed as (first)|(second) combines them thus

(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))

#step4- get dataframe you go df[(first)or(second)].Thus;
df[(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))]

#step5- return dataframe to original shape by resetting index
df[(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))].set_index('index')




       Ingredient  PoundsUsed
index                       
0           1705      8800.0
1         ZR100S      2934.0
2         *STOCK       321.0

首先重置索引,使当前索引成为列。这是因为df.index不接受.shift() 检查索引中的连续行是否连续

df.reset_index(inplace=True)# reset index
df[(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))].set_index('index')
一步一步

#step 1
df.reset_index(inplace=True)# reset index

#step 2
(df['index'].eq((df['index'].shift(-1))-1))#First consecutive check
(df['index'].eq((df['index'].shift(1))+1))#Second consecutive check

#step 3
#(first)or(second) expressed as (first)|(second) combines them thus

(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))

#step4- get dataframe you go df[(first)or(second)].Thus;
df[(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))]

#step5- return dataframe to original shape by resetting index
df[(df['index'].eq((df['index'].shift(-1))-1))|(df['index'].eq((df['index'].shift(1))+1))].set_index('index')




       Ingredient  PoundsUsed
index                       
0           1705      8800.0
1         ZR100S      2934.0
2         *STOCK       321.0

我很想帮你,但你需要更准确。首先,空白行是完全空白的(根本没有值)。如果你能提供dataframe的完整预览,它将对你和你的代码都有很大帮助。我很想帮助你,但你需要更精确。首先,空白行是完全空白的(根本没有值)。如果您能提供dataframe的完整预览,它将对您的代码以及您的用户有很大帮助。