В дополнение к другим ответам выше,
Вы также можете попробовать это, чтобы удалить расширения .php полностью из вашего файла и избежать бесконечного цикла:
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]
Этот код будет работайте в Root / .htaccess. Обязательно измените RewriteBase, если вы хотите поместить его в файл htaccess в подкаталоге.
Изменить:
На apache 2.4 и более поздних версиях вы также может использовать флаг END для предотвращения ошибки бесконечного цикла. Следующий пример работает так же, как и выше, на apache 2.4,
RewriteEngine on
RewriteRule ^(.+)\.php$ /$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,END]
Вы можете объединить Series
в DataFrame
и затем использовать .agg
. NaN
будет вставлено, чтобы заполнить ячейки с неравной длиной, но большинство функций pandas
agg будут игнорировать их по умолчанию для расчетов.
import pandas as pd
df = pd.concat([pd.Series(x) for x in [X_1, X_2]], axis=1, keys=['X_1', 'X_2'])
df.agg(['mean', 'std']).T
# mean std
#X_1 2.0 1.000000
#X_2 6.0 1.581139
Если у вас много списков, возможно, лучше хранить их в словаре, чтобы избежать записи ключей и списков по отдельности
Я буду использовать describe
df=pd.concat([pd.Series(x) for x in [X_1, X_2]], axis=0, keys=['X_1', 'X_2'])# notice here I am using axis=0 rather than 1
df.groupby(level=0).describe()
Out[442]:
count mean std min 25% 50% 75% max
X_1 3.0 2.0 1.000000 1.0 1.5 2.0 2.5 3.0
X_2 5.0 6.0 1.581139 4.0 5.0 6.0 7.0 8.0
особые случаи
X_1 = [1,2,np.nan]
X_2 = [4,5,6,7,8]
df=pd.concat([pd.Series(x) for x in [X_1, X_2]], axis=0, keys=['X_1', 'X_2'])
df.groupby(level=0).size()
Out[445]:
X_1 3
X_2 5
dtype: int64