Вы можете ожидать, что это увеличится, если клавиши соответствуют более одной строке в другом DataFrame:
In [11]: df = pd.DataFrame([[1, 3], [2, 4]], columns=['A', 'B'])
In [12]: df2 = pd.DataFrame([[1, 5], [1, 6]], columns=['A', 'C'])
In [13]: df.merge(df2, how='left') # merges on columns A
Out[13]:
A B C
0 1 3 5
1 1 3 6
2 2 4 NaN
Чтобы избежать этого поведения , удалите дубликаты в df2:
In [21]: df2.drop_duplicates(subset=['A']) # you can use take_last=True
Out[21]:
A C
0 1 5
In [22]: df.merge(df2.drop_duplicates(subset=['A']), how='left')
Out[22]:
A B C
0 1 3 5
1 2 4 NaN
Вы можете просто заменить http:// + hostname
:
var string = 'https://sub.example.com/dir/ https://sub.example.com/dir/v2.5/'
var hostname = 'sub.example.com';
let urls = string.split(' ')
.map(u => u.replace('https://'+hostname, ''))
console.log(urls)
// if you want a space-separated string:
console.log(urls.join(' '))
Вы можете использовать
new RegExp('https://'+hostname_match+'/(\\S*)', 'g')
Здесь .*
заменяется на \S*
, совпадающих с нулем или более непробельных символов.
См. Демонстрацию JS:
var string = 'https://sub.example.com/dir/ https://sub.example.com/dir/v2.5/'
var hostname = 'sub.example.com';
var hostname_match = hostname.replace(/\./g, '\\.');
console.log(
string.replace(new RegExp('https://'+hostname_match+'/(\\S*)', 'g'), '/$1')
);
Обратите внимание, что вам не нужно экранировать косую черту в нотации конструктора /
не является специальным метасимволом регулярных выражений. Двоеточие не должно быть экранировано в любых контекстах регулярных выражений.