检查Pandas Series&的数据类型。将String转换为Number

时间:2018-04-26 14:03:51

标签: python pandas dataframe time-series

我有一个像这样的系列(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?

事先提前

2 个答案:

答案 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