Проверьте тип данных серии Pandas и конвертируйте строку в число - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть подобная серия (ts), в которой я заменил пустые значения на следующие:

       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 дает мне: dtype('O')

как я могу проверить, является ли значение Series числом, а если это String, преобразовать его в число / int?

спасибо заранее

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Использование 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
0 голосов
/ 26 апреля 2018

Использование apply

Ex:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...