私は次のデータフレームを持っています:
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)]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加