我有一个名为Prod的数据框,其形状如下:
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)
但是很显然,布尔型内部方括号
'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