Значения фрейма смешанных данных не могут быть заменены с помощью pandas в python [duplicate]

Парафраз из Брайана Баттона:

  1. Они обычно используются в качестве глобального экземпляра, почему это так плохо? Потому что вы скрываете зависимости вашего приложения в своем коде, вместо того, чтобы разоблачать их через интерфейсы. Сделать что-то глобальное, чтобы избежать его прохождения, это запах кода .
  2. Они нарушают принцип единой ответственности : в силу того, что они контролируют свои собственное создание и жизненный цикл.
  3. Они по сути заставляют код плотно соединены . Это во многих случаях затрудняет их подтасовку.
  4. Они несут состояние в течение всего срока службы приложения. Еще один удар по тестированию, так как вы можете закончить ситуацию, когда нужно заказать тесты, что не является большим для нетипичных тестов. Зачем? Поскольку каждый модульный тест должен быть независимым от другого.

7
задан user5739619 13 February 2016 в 06:16
поделиться

3 ответа

Вы можете преобразовать в строку и извлечь целое число с помощью регулярных выражений.

df['B'].str.extract('(\d+)').astype(int)
31
ответ дан Lokesh A. R. 21 August 2018 в 21:07
поделиться

Я написал небольшой цикл, чтобы сделать это, поскольку у меня не было строк в DataFrame, но в списке. Таким образом, вы также можете добавить инструкцию little для оператора float:

output= ''
input = 'whatever.007'  

for letter in input :
        try :
            int(letter)
            output += letter

        except ValueError :
                pass

        if letter == '.' :
            output += letter

output = float (output)

или вы можете использовать int (output), если хотите.

0
ответ дан boesjes 21 August 2018 в 21:07
поделиться

Предполагая, что всегда существует ровно одна ведущая буква

df['B'] = df['B'].str[1:].astype(int)
1
ответ дан Mike Graham 21 August 2018 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: