簡體   English   中英

如何根據行索引上的條件刪除 pandas dataframe 中的行

[英]How to drop row in pandas dataframe according to a condition on the index of the row

我有一個名為 Prod 的 dataframe,形狀如下:

carriers         electricity
techs   
ETH_imp          0.000000e+00
T:Arusha         1.786273e+06
T:Dar_es_Salaam  0.000000e+00
T:Dodoma         3.348339e+08
T:Geita          0.000000e+00
ccgt             3.412390e+08

所以我的Prod.index結果:

Index(['ETH_imp', 'T:Arusha', 'T:Dar_es_Salaam', 'T:Dodoma', 'T:Geita', 'ccgt'],
      dtype='object', name='techs')

我需要刪除索引包含字符串'T:'

我試過Prod=Prod.drop(Prod['T:' in Prod.index].index) ,但顯然方括號內的 boolean , Prod.index 中'T:' in Prod.index只返回一個false

您可以更改邏輯 - 如果索引值不包含或以T:

因此,通過boolean indexing過濾~用於帶有str.contains的反轉掩碼:

df1 = Prod[~Prod.index.str.contains('T:')]

str.startswith

df1 = Prod[~Prod.index.str.startswith('T:')]

print (df1)
          electricity
carriers             
ETH_imp           0.0
ccgt      341239000.0

您也可以使用Series.str.match

new_df=Prod[~Prod.index.str.match('T:')]
print(new_df)

          electricity
carriers             
ETH_imp           0.0
ccgt      341239000.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM