Как разобрать колонну и объединить?

#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