Использование .str в серии Pandas преобразует все данные в тип NaN float64 - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь использовать .str в моей серии Pandas, чтобы использовать методы строковых операторов, но .str преобразует все мои данные в NaN типа float64 dtype. Серия Pandas - это объект типа d для начала.

Ниже я показываю свою серию API, а затем пытаюсь выполнить для нее метод split.

In [80]:
wellinfo['API'].head()

Out[80]:

 0    3501124153
 1    3501124154
 2    3501124155
 3    3501124185
 4    3501725290
 Name: API, dtype: object

In [81]: 
wellinfo['API'].str.split("0")

Out[81]:
0      NaN
1      NaN
2      NaN
3      NaN
4      NaN
5      NaN
...
1537   NaN
1538   NaN
1539   NaN
1540   NaN
1541   NaN
1542   NaN
Name: API, Length: 1543, dtype: float64

Я пролистал пандыдокументация, но не могу выяснить, почему он конвертирует все. Я также попробовал несколько методов, кроме метода split с одинаковыми результатами.

Любая информация приветствуется. Спасибо.

1 Ответ

0 голосов
/ 05 ноября 2019

просто выберите значения str и выполните операцию в этом случае замените. Для других значений, которые не являются str, возвращается NaN. Используйте Series.fillna:

wellinfo['API'].str.split("0").fillna(wellinfo['API'])

или для изменения значений int:

wellinfo['API'].astype(str).str.split("0")

, как предлагается @ Mstaino

...