апачский mod_rewrite одно правило для любого количества возможностей

Вам нужно назначить обратно

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

11
задан eLRuLL 16 December 2017 в 23:28
поделиться

3 ответа

Действительно любите 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++;
    }
}
8
ответ дан 3 December 2019 в 06:49
поделиться

Я не знаю, может ли это быть сделано с отдельным выражением, но это может быть сделано с постоянным числом выражений, неважно, сколько времени строка запроса.

Ваши правила 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&param2=val2&param3=val3&...

Это останавливается, когда существует только один остающийся параметр. Это возьмет первый "параметр" и назовет .php файл с тем именем. Нет никакого предела количеству param/val пар.

8
ответ дан 3 December 2019 в 06:49
поделиться

Я не полагаю, что их путь - но я сказал бы, что Ваш лучший выбор будет состоять в том, чтобы иметь сценарий "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'

2
ответ дан 3 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

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