将类型 str(带有数字和单词)列转换为 int pandas

Gar*_*TAT 2 python pandas

我有一个包含数字和单词类型 str 的列:

前任。

['2','3','Amy','199','Happy']
Run Code Online (Sandbox Code Playgroud)

我想将所有“str number”转换为 int 并删除(带有)“str words”的行。

所以我的预期输出将是一个如下所示的列表:

[2, 3, 199]
Run Code Online (Sandbox Code Playgroud)

由于我有一个 Pandas 数据框,并且这应该是其中一列,如果它可以是Series如下所示,那就更好了:

0      2.0
1      3.0
3    199.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)

U10*_*ard 10

正如您提到的,您有一个专栏(一个系列),所以假设它被称为s

s = pd.Series(['2', '3', 'Amy', '199', 'Happy'])
Run Code Online (Sandbox Code Playgroud)

然后赋值后,就做pd.to_numeric,把errors='coerce'. 然后,删除NaNs dropna

print(pd.to_numeric(s, errors='coerce').dropna())
Run Code Online (Sandbox Code Playgroud)

然后上面的代码会输出:

0      2.0
1      3.0
3    199.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)