JavaScript - получить только часть строки после определенного выражения

Вы можете ожидать, что это увеличится, если клавиши соответствуют более одной строке в другом 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

-1
задан Folky.H 16 January 2019 в 18:25
поделиться

2 ответа

Вы можете просто заменить 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(' '))

0
ответ дан Mark Meyer 16 January 2019 в 18:25
поделиться

Вы можете использовать

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')
);

Обратите внимание, что вам не нужно экранировать косую черту в нотации конструктора / не является специальным метасимволом регулярных выражений. Двоеточие не должно быть экранировано в любых контекстах регулярных выражений.

0
ответ дан Wiktor Stribiżew 16 January 2019 в 18:25
поделиться
Другие вопросы по тегам:

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