[英]Dataframes: Dropping rows ending in an specific string?
我有以下 dataframe:
nutsgdp
Out[77]:
2010 2011 2012 ... 2016 2017 2018
NUTS_ID ...
AT 295896.60 310128.70 318653.00 ... 357299.70 370295.80 385711.90
AT1 131114.27 136271.77 139149.68 ... 155609.11 159879.39 166443.24
AT11 6698.37 7012.58 7365.43 ... 8353.78 8771.65 9005.49
AT111 738.53 784.29 791.16 ... 923.96 996.55 996.55
AT112 3843.03 4028.02 4313.17 ... 4923.69 5165.46 5165.46
... ... ... ... ... ... ...
UKN15 3762.30 3604.13 4228.35 ... 5391.50 5089.14 4203.36
UKN16 2169.86 2162.22 2452.28 ... 2801.88 2801.14 2730.28
UKZ 30761.26 33592.50 32090.74 ... 13343.86 12887.29 20225.66
UKZZ 30761.26 33592.50 32090.74 ... 13343.86 12887.29 20225.66
UKZZZ 30761.26 33592.50 32090.74 ... 13343.86 12887.29 20225.66
[1794 rows x 9 columns]
我想刪除索引長於 2 個字符並以“Z”結尾的所有行。 這意味着,例如,刪除'UKZ'
、 'UKZZ'
和'UKZZZ'
,但保留'CZ'
。 最好的方法是什么? 在此先感謝您的幫助。
使用Series.str.contains
並通過~
反轉掩碼並通過boolean indexing
過濾:
df = df[~df.index.str.contains('(.){2,}Z$')]
或者使用Series.str.endswith
和Series.str.len
:
df = df[~df.index.str.endswith('Z') | (df.index.str.len() <= 2)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.