Вам нужно назначить обратно
df = df.replace('white', np.nan)
или передать param inplace=True
:
In [50]:
d = {'color' : pd.Series(['white', 'blue', 'orange']),
'second_color': pd.Series(['white', 'black', 'blue']),
'value' : pd.Series([1., 2., 3.])}
df = pd.DataFrame(d)
df.replace('white', np.nan, inplace=True)
df
Out[50]:
color second_color value
0 NaN NaN 1.0
1 blue black 2.0
2 orange blue 3.0
Большинство pandas ops возвращают копию, и большинство из них имеют параметр inplace
, который обычно по умолчанию False
Действительно любите Drupal:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
И затем обработайте весь материал в своем сценарии с помощью php, кодируют что-то вроде этого
$pathmap = ();
if ($_GET["q"]){
$path = split("/", $_GET["q"]);
for ($i=0; $i+1<count($path); $i++){
$pathmap[$path[$i]] = $path[$i+1];
$i++;
}
}
Я не знаю, может ли это быть сделано с отдельным выражением, но это может быть сделано с постоянным числом выражений, неважно, сколько времени строка запроса.
Ваши правила mod_rewrite будут неоднократно называть, давая Вам, что иногда называют mod_rewrite рекурсией. Существуют методы для предотвращения его, но я думаю, что Вы хотите использовать его.
Установите правило, которое заменяет последнюю пару name=value&
Продолжайте лавировать на входной строке запроса к выводу. Каждый раз через, Ваша строка запроса станет дольше, и Ваш URL станет короче.
В конечном счете у Вас есть только единственное значение, которое соответствует Вашему последнему правилу.
Необходимо получить строку запроса с
RewriteCond %{QUERY_STRING} ^(.*)$
И затем Вы добавляете его назад к выводу с %1
Вы закончили бы с четырьмя строками.
Я знаю, что четыре строки - то, с чего Вы запустили, но Вы будете соответствовать стольким параметрам, сколько Вы хотите, не имея необходимость добавлять пятую строку.
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*/)([^/]+)/([^/]+) $1?$2=$3&%1 [L]
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([^/]+)/ $1.php?%1 [L]
Это перепишет следующее
/mypage/param1/val1/param2/val2/param3/val3/... --->
/mypage.php?param1=val1¶m2=val2¶m3=val3&...
Это останавливается, когда существует только один остающийся параметр. Это возьмет первый "параметр" и назовет .php файл с тем именем. Нет никакого предела количеству param/val пар.
Я не полагаю, что их путь - но я сказал бы, что Ваш лучший выбор будет состоять в том, чтобы иметь сценарий "index.php", обрабатывают путь вместо того, чтобы иметь необходимость сделать столько обратных ссылок.
Так, например, Ваш rewriterule был бы
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Или подобный... Это затем сделало бы $ _SERVER ['REQUEST_URI'], переменная содержат информацию о пути, которую можно разделить и проанализировать.
$path = split('/', $_SERVER['REQUEST_URI']);
array_shift($path); // We always have a first null value
$mode = array_shift($path);
Это заканчивается с $mode, содержащим режим и $path, содержащий массив элементов, которые являются остальной частью Вашего пути, таким образом,
http://example.com/foo/bar/baz
Оставил бы Вас с $mode, являющимся 'нечто' и $path, являющимся массивом, содержащим 'панель' и 'baz'