这是一个奇怪的特定问题,但
如果我有一个熊猫数据框,看起来像:
...
8 0
9 0
10 0
11 0
12 0
13 Dogs
14 Cats
...
我需要它查看所有字符串类型并将其更改为1,因此:
...
8 0
9 0
10 0
11 0
12 0
13 1
14 1
...
有没有办法让df.replace()查看字符串类型?
谢谢!
只要您列中的其他值都是有效的数字值并且还没有NaN
值to_numeric
,在这种情况下,您可以使用强制将字符串值转换为数字值NaN
。
然后,您可以替换NaN
使用1
,但由于引进的NaN
,将dtype
被改为float
所以我们需要区分的dtype
来int
使用astype
:
In [6]:
# read the data into our df
import pandas as pd
import io
t="""8 0
9 0
10 0
11 0
12 0
13 Dogs
14 Cats"""
df = pd.read_csv(io.StringIO(t), delim_whitespace=True, header=None)
df
Out[6]:
0 1
0 8 0
1 9 0
2 10 0
3 11 0
4 12 0
5 13 Dogs
6 14 Cats
现在,转换字符串,将其替换为并将1
Series dtype强制转换回int:
In [7]:
df[1] = pd.to_numeric(df[1], errors='coerce').fillna(1).astype(int)
df
Out[7]:
0 1
0 8 0
1 9 0
2 10 0
3 11 0
4 12 0
5 13 1
6 14 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句