У меня есть датафрейм с двумя столбцами: имя и идентификатор. В некоторых случаях имена повторяются и также могут быть сокращены, но они всегда будут иметь один и тот же идентификатор, например:
NAMES ID
1. Peter Elliot 12345678
2. Peter Elliot 12345678
3. Peter E. 12345678
4. Lucas Kershaw 87654321
5. Lucas Kershaw 87654321
6. Lucas Kershaw 87654321
7. L. Kershaw 87654321
... другие имена и идентификаторы ...
Таким образом, моя цель - отформатировать имена, используя более длинную строку, используя в качестве ссылки идентификатор.
Результат должен быть:
NAMES ID
1. Peter Elliot 12345678
2. Peter Elliot 12345678
3. Peter Elliot 12345678
4. Lucas Kershaw 87654321
5. Lucas Kershaw 87654321
6. Lucas Kershaw 87654321
7. Lucas Kershaw 87654321
... другими именами и идентификаторами. ..
Я пробовал что-то вроде этого:
a = np.asarray(general['ids']
for j in range(len(a)):
ToF = df['ids'] == a[j]
filts = df[ToF]
filtdf = filts.loc[filt, ['names']]
read_longer_string = filt400.names.astype(str).map(len)
if read_longer_string.argmax() == read_longer_string.argmin():
print('nothing should happen')
elif read_longer_string.argmax() != read_longer_string.argmin():
longer_string = filtfd.loc[read_longer_string.argmax(), 'names']
df['names'] = df['names'].where(filt == False, df['names'].apply(longer_string.format), errors = 'ignore')