#python #pandas
Вопрос:
Данный набор cust_rating
данных содержит 3 столбца, т. е. rating
, food_rating
, service_rating
.
Я хочу создать новую переменную avg_rating
.
import pandas as pd
cust_rating = pd.read_csv('https://query.data.world/s/ILc-P4llUraMaYN6N6Bdw7p6kUvHnj')
cust_rating['avg_rating'] = round(#Type your code here.)
print(cust_rating.head(10))
Ответ №1:
Это простой случай среднего значения по требуемым столбцам
import pandas as pd
cust_rating = pd.read_csv('https://query.data.world/s/ILc-P4llUraMaYN6N6Bdw7p6kUvHnj')
cust_rating['avg_rating'] = cust_rating.loc[:,[c for c in cust_rating.columns if "rating" in c]].mean(axis=1)
cust_rating.head(10)
Идентификатор пользователя | Место | Оценка | food_rating | оценка услуг | средняя оценка | |
---|---|---|---|---|---|---|
0 | U1077 | 135085 | 2 | 2 | 2 | 2 |
1 | U1077 | 135038 | 2 | 2 | 1 | 1.66667 |
2 | U1077 | 132825 | 2 | 2 | 2 | 2 |
3 | U1077 | 135060 | 1 | 2 | 2 | 1.66667 |
4 | U1068 | 135104 | 1 | 1 | 2 | 1.33333 |
5 | U1068 | 132740 | 0 | 0 | 0 | 0 |
6 | U1068 | 132663 | 1 | 1 | 1 | 1 |
7 | U1068 | 132732 | 0 | 0 | 0 | 0 |
8 | U1068 | 132630 | 1 | 1 | 1 | 1 |
9 | U1067 | 132584 | 2 | 2 | 2 | 2 |
Ответ №2:
cust_rating['avg_rating'] = round( (cust_rating['rating'] cust_rating['food_rating'] cust_rating['service_rating'])/3,1 )
userID placeID rating food_rating service_rating avg_rating
0 U1077 135085 2 2 2 2.0
1 U1077 135038 2 2 1 1.7
2 U1077 132825 2 2 2 2.0
3 U1077 135060 1 2 2 1.7
4 U1068 135104 1 1 2 1.3
... ... ... ... ... ... ...
1249 U1043 132630 1 1 1 1.0
1250 U1011 132715 1 1 0 0.7
1251 U1068 132733 1 1 0 0.7
1252 U1068 132594 1 1 1 1.0
1253 U1068 132660 0 0 0 0.0
1254 rows × 6 columns
Ответ №3:
IIUC, попробуй:
cust_rating['avg_rating'] = cust_rating.filter(like='rating').mean(axis=1)
cust_rating
Выход:
userID placeID rating food_rating service_rating avg_rating
0 U1077 135085 2 2 2 2.000000
1 U1077 135038 2 2 1 1.666667
2 U1077 132825 2 2 2 2.000000
3 U1077 135060 1 2 2 1.666667
4 U1068 135104 1 1 2 1.333333
... ... ... ... ... ... ...
1249 U1043 132630 1 1 1 1.000000
1250 U1011 132715 1 1 0 0.666667
1251 U1068 132733 1 1 0 0.666667
1252 U1068 132594 1 1 1 1.000000
1253 U1068 132660 0 0 0 0.000000
[1254 rows x 6 columns]