根据索引字符串中的char删除行

时间:2017-05-27 07:14:55

标签: pandas

我有以下数据框:

df = pd.DataFrame(np.random.randn(4, 1), index=['mark13', 'luisgimenez', 'miguel72', 'luis34'],columns=['probability'])


             probability
mark13         -1.054687
luisgimenez     0.081224
miguel72       -0.893619
luis34         -1.576941

我想删除索引字符串中最后一个字符不包含数字的行。

所需的输出看起来像这样: (删除索引未完成的行与数字)

             probability
mark13         -1.054687
miguel72       -0.893619
luis34         -1.576941

我确定我需要的方向是boolean indexing,但我不知道如何引用索引名称中的最后一个字符

2 个答案:

答案 0 :(得分:1)

您可以使用str访问器检查最后一个字符是否为数字:

df[df.index.str[-1].str.isdigit()]
Out: 
          probability
mark13      -0.350466
miguel72     1.220434
luis34      -0.962123

答案 1 :(得分:1)

#use isdigt to check last char of your index to be used as a mask array to filter rows.
df[[e[-1].isdigit() for e in df.index]]
Out[496]: 
          probability
mark13      -0.111338
miguel72     0.548725
luis34       0.682949