Я бы использовал один лайнер:
df['B'].str.split('>`').apply(lambda x: pd.Series(['']*(2-len(x)) + x))
# 0 1
#0 Y abcd
#1 abcd
#2 efgh
#3 Y efgh
Нет такой Duplicated jQuery Selector
ошибки; IntelliJ (и другие IDE из идеи, подобной WebStorm ...) выдают предупреждение, в котором говорится, что вы должны хранить выбор jQuery в локальной переменной, а не повторять выбор.
Выдержка из документации jQuery :
Сохранение выборов
jQuery не кэширует элементы для вас. Если вы сделали выбор, который вам может потребоваться сделать снова, вы должны сохранить выбор в переменной, а не делать выбор повторно.
1| var divs = $( "div" );
После того, как выборка сохранена в переменной, вы можете вызывать методы jQuery для переменной так же, как вы вызывали бы их в исходной выборке.
Выборка выбирает только те элементы, которые находятся на странице во время выбора. Если элементы будут добавлены на страницу позже, вам придется повторить выделение или иным образом добавить их к выделению, сохраненному в переменной. Сохраненные выборки не обновляются магическим образом при изменении DOM.
Однако в вашем коде нет дублированного выбора jQuery, поэтому я уверен, что предупреждение приходит откуда-то еще ... Что соответствует тому, что ошибка сохраняется после добавления отсутствующего $
.
Как правило, рекомендуется добавлять сообщение об ошибке в ваши вопросы.
У меня была та же самая ошибка, пытаясь что-то вроде этого:
if ($("#checkbox").is(':checked')){
value = $("#checkbox").val();
По какой-то причине ошибка была выдана "#checkbox"
. Я решил проблему, добавив:
//noinspection JSJQueryEfficiency
в верхней части оператора if
, например:
//noinspection JSJQueryEfficiency
if ($("#checkbox").is(':checked')){
value = $("#checkbox").val();
, и сообщение об ошибке исчезло.
«Двойной селектор» действительно является предупреждением JS lint, которое вы увидите в таких средах разработки, как PHPStorm / WebStorm. По соображениям производительности вы захотите кэшировать ваши селекторы всякий раз, когда это возможно .. например :
(function($) {
var
$mondayCommentLink = $("#mondayCommentLink"),
$mondayHtmls = $("#mondayComment"),
$inputMonday = $("<input type='text' id='mondayCommentText' name='mondayCommentText' />");
$mondayCommentLink.on('click', function() {
$inputMonday.val(data.days[0].comment);
$mondayHtmls.html($inputMonday);
});
})(jQuery);
... и так далее. Я только что сделал понедельник, но вы продолжите добавлять переменную ссылку на селектор, который вы можете получить, который уже находится в памяти. Ситуация немного сложнее при работе с AJAX или при наличии нескольких областей, но это основная идея. Это просто соглашение, но мне проще ссылаться на селекторы с помощью var $ elem и camelcased.