#python #pandas
Вопрос:
df:
home_score away_score
1 0.0 1.0
2 2.0 1.0
3 3.0 2.0
4 0.0 0.0
5 1.0 1.0
Ожидаемый результат:
score
-- -------
0 0:1
1 2:1
2 2:1
3 3:2
Я пытаюсь
df['home_score'] = df['home_score'].astype(str).str.replace('^.*(.d)', '', regex=True)
чтобы удалить счет перед объединением столбцов, но я ничего не получаю..
Кроме того, этот код работал с регулярным выражением101 Как мне понять, что это работает в python?
Комментарии:
1. Это должно сработать:
df['home_score'].astype(str).str.replace('(.d )$', '', regex=True)
Ответ №1:
Сначала преобразуйте свои столбцы в int, чтобы удалить десятичную часть, а затем приведите их к строке, прежде чем присоединять их:
cols = ['home_score', 'away_score']
df['score'] = df[cols].astype(int).astype(str).apply(':'.join, axis=1)
print(df)
# Output:
home_score away_score score
1 0.0 1.0 0:1
2 2.0 1.0 2:1
3 3.0 2.0 3:2
4 0.0 0.0 0:0
5 1.0 1.0 1:1