Python-Pandas-忽略空格后的数据
我正在开发一个从excel文件中读取数据的程序。excel文件中有我感兴趣的数据行,然后是空白行,然后是几行不相关的数据,我想从数据框中排除这些数据 这就是我的数据框的外观: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行 我尝试了一些
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的完整预览,它将对您的代码以及您的用户有很大帮助。