删除序列号中的前导零或外来字符

Remove leading zeros or foreign characters in sequence number

例如:在下面的“样本”列中,我需要删除第 2、3 和 5 列,因为它们要么在开头有一个前导零,要么在开头有一个特殊字符。

Index Sample
1 12345
2 00152
3 09
4 325
5 .1246

我尝试将“示例”列数据类型更改为字符串并像这样提取第一个字符:

t = df['Sample'].astype(str).str[0].astype(int)

但它给了我这个输出:

print(t)

 
|   1   |  1  | 
|   2   |  1  | 
|   3   |  9  | 
|   4   |  3  |
|   5   |  0  | 

它想要这样,以便我可以使用索引值删除相应的行:

 
|   1   |  1  | 
|   2   |  0  | 
|   3   |  0  | 
|   4   |  3  |
|   5   |  .  | 

我的做法正确吗?任何人都可以帮我解决这个问题吗? 非常感谢。

您可以尝试使用 str.match 如下:

df = df[df["sample"].str.match(r'[1-9]')]

这只会保留样本值以非零数字开头的行。