我有一个像这样的系列(ts),其中我将空值替换为:
cont
Date
2013-04-28 1
2013-04-29 1
2013-04-30 1
2013-05-01 1
...
2018-03-11 6296370000
2018-03-12 6457400000
2018-03-13 5991140000
Name: Volume, Length: 1808, dtype: object
给了我:ts.dtype
如何检查Series的值是否为数字,如果是String,则将其转换为数字/ int?
事先提前答案 0 :(得分:0)
使用apply
<强>实施例强>
import pandas as pd
df = pd.DataFrame({"a": ["1","1","1","1", "a", "a"]})
print(df["a"].apply(lambda x: int(x) if x.isdigit() else x))
<强>输出:强>
0 1
1 1
2 1
3 1
4 a
5 a
Name: a, dtype: object
答案 1 :(得分:0)
使用to_numeric
pd.to_numeric(df.a,errors='coerce').fillna(df.a)
Out[204]:
a
0 1
1 1
2 1
3 1
4 a
5 a
更多信息
pd.to_numeric(df.a,errors='coerce').fillna(df.a).apply(type)
Out[217]:
0 <class 'float'>
1 <class 'float'>
2 <class 'float'>
3 <class 'float'>
4 <class 'str'>
5 <class 'str'>
Name: a, dtype: object