Ошибка Pandas: можно использовать только.str-accessor со строковыми значениями, которые используют np.object_ dtype в pandas

123
15

У меня есть данные в файле .txt, как показано ниже:

029070 ***** 190101010600 270 36 OVC ** 0.0 ** **

Я хочу извлечь 190101 из столбца 3, я получаю AttributeError: могу использовать только.ter accessor со строковыми значениями, которые используют np.object_ dtype в pandas ниже, это мои python pandas. Ниже мой код

import pandas as pd
import numpy as np
import re

data = pd.read_csv('dummy.txt', sep=" ", low_memory=False, header=None)
data.columns = ["a", "b", "c","d","e","f","g","h","i","j"]

print(data.c.str[0:6])

спросил(а) 2018-02-24T05:23:00+03:00 2 года, 8 месяцев назад
1
Решение
58

Проблема здесь в том, что когда вы читаете свой txt файл, в нем выполняется "c" как целое число, а аксессор.str не будет работать с нестроковыми dtypes, вы можете решить эту проблему несколькими способами:

Опция 1

Выделите целое число как строку в заявлении печати.

print(data.c.astype(str).str[0:6])

0 190101
Name: c, dtype: object

Вариант 2

Передача в виде строки на в dtype параметром read_csv в read_csv

data = pd.read_csv(txtfile, sep=' ', header=None, dtype={2:'str'})
data.columns = list('abcdefghij')
print(data.c.str[0:6]

0 190101
Name: c, dtype: object

ответил(а) 2018-03-26T06:05:00+03:00 2 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема