Расчеты внутри группы в пандах, питонах - PullRequest
0 голосов
/ 31 января 2019

Мой набор данных содержит цены на дома для 4 различных типов домов (A, B, C, D) в 4 разных странах (США, Германия, Великобритания, Швеция).Цена дома может быть только трех типов (вверх, вниз и без изменений).Я хочу рассчитать индекс различия (ID) для разных типов домов (A, B, C, D) для разных стран (США, Германия, Великобритания, Швеция) на основе цены дома.

Формула, которую я хочуиспользовать для расчета индекса разности (DI):

DI = (общее количество восходящих * 1 + общее количество нисходящих * 0 + общее количество неизмененных * 0,5) / (общее количествоВверх + общее количество нисходящих + общее количество неизмененных)

Вот мои данные:

enter image description here

иожидаемый результат:

enter image description here

Мне очень нужна ваша помощь.Спасибо.

1 Ответ

0 голосов
/ 31 января 2019

Вы можете сделать это, используя groupby и предполагая, что ваш файл назван text.xlsx

df = pd.read_excel('test.xlsx')
df = df.replace({'Upward':1,'Downward':0,'Notchanged':0.5})
df.groupby('Country').mean().reset_index()
...