У меня есть редкие панды DataFrame/Series со значениями, которые выглядят как вариации "AB1234:12, CD5678:34, EF3456:56"
. Что-то эффектДелитесь дважды через фрейм данных в пандах
"AB1234:12, CD5678:34, EF3456:56"
"AB1234:12, CD5678:34"
NaN
"GH5678:34, EF3456:56"
"OH56:34"
который я хотел бы преобразовать в
["AB1234","CD5678", "EF3456"]
["AB1234","CD5678"]
NaN
["GH5678","EF3456"]
["OH56"]
Такого рода «двойного разграничение» доказывало трудно. Я знаю, что мы можем A = df["columnName"].str.split(",")
, однако я столкнулся с несколькими проблемами, включая то, что .split(", ")
не работает, и '.split (",")' оставляет пробелы. Кроме того, что итерация через сгенерированный A
и расщепление, похоже, интерпретирует мои новые списки как «floats». Хотя эта последняя может быть технической трудностью с ipython - я тоже пытаюсь решить эту проблему.
Есть ли способ разграничения на двух типах разделителей - вместо одного? Если нет, как вы выполняете цикл для повторения по внутреннему списку?
// Изменить: изменил апострофа в запятые - это был только мой дислексии ногами в
Подсказка, связанная с вашим упоминанием регулярного выражения, я обнаружил, что это: 's2.apply (lambda x: re.split (': \ d {1,3},? \ S?', X))' было SUPER close. Я не очень хорошо знаком с регулярным выражением, так что это просто что-то, что я взломал. Я получаю пустой элемент списка в конце из-за последнего шаблона ': \ d \ d', который я не знаю, как избавиться от regex. – stites
@dbyte О, я вижу, я пропустил: бит. Регулярное выражение заменяет * first *: 's2.str.replace (': \ d +', '') .str.split (" \ s *, \ s * ")'. –
безупречный! хотя данные были структурированы как '(", \ s * ")'. Удивительный опоссум. – stites