我有以下数据框:
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
,但我不知道如何引用索引名称中的最后一个字符
答案 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