删除数据框中的行,直到找到 python 的特定值
delete rows in a dataframe untill it finds a certain value with python
所以我需要这段代码来不断删除行,直到 A1 单元格是一个特定的字符串,我试过这个:
while table[0][0] != 'Nº TAD':
table = table.drop(table.index[0])
但循环似乎比我想要的要多,我不知道为什么
您可以像这样遍历行:
for index, row in table.iterrows():
if row["col_name"] == 'Nº TAD':
break
table.drop([index],inplace=True)
这就是你想要的。只需将 if-check 与您要检查的 string
交换即可。 df
是你的 DataFrame
.
In[16]: df
Out[16]:
0 1 2 3
0 1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 5 6 7 8
In[17]: new_df = df
...: for num, row in enumerate(df.values):
...: if row[0] == 5:
...: break
...: else:
...: new_df = new_df.drop(num)
...:
In[18]: new_df
Out[18]:
0 1 2 3
3 5 6 7 8
所以我需要这段代码来不断删除行,直到 A1 单元格是一个特定的字符串,我试过这个:
while table[0][0] != 'Nº TAD':
table = table.drop(table.index[0])
但循环似乎比我想要的要多,我不知道为什么
您可以像这样遍历行:
for index, row in table.iterrows():
if row["col_name"] == 'Nº TAD':
break
table.drop([index],inplace=True)
这就是你想要的。只需将 if-check 与您要检查的 string
交换即可。 df
是你的 DataFrame
.
In[16]: df
Out[16]:
0 1 2 3
0 1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 5 6 7 8
In[17]: new_df = df
...: for num, row in enumerate(df.values):
...: if row[0] == 5:
...: break
...: else:
...: new_df = new_df.drop(num)
...:
In[18]: new_df
Out[18]:
0 1 2 3
3 5 6 7 8