у меня есть датафрейм df
df
Object Action Cost1 Cost2
0 123 renovate 10000 2000
1 456 do something 0 10
2 789 review 1000 50
и словарь (так называемый словарь)
dictionary
{'Object_new': ['Object'],
'Action_new': ['Action'],
'Total_Cost': ['Cost1', 'Cost2']}
Кроме того, у меня есть (в начале пустой) фрейм данных df_new , который должен содержать почти такую же информацию, как df, за исключением того, что имена столбцов должны быть разными (именование в соответствии со словарем) и что некоторые столбцы из df должны быть объединены (например, операция суммирования) на основе словаря.
Результат должен выглядеть следующим образом:
df_new
Object_new Action_new Total_Cost
0 123 renovate 12000
1 456 do something 10
2 789 review 1050
Как мне достичь этого результата, используя только словарь? Я попытался использовать функцию .map (), но не смог понять, как выполнить суммирование с ней.
Код для воспроизведения как информационных кадров, так и словаря прилагается:
# import libraries
import pandas as pd
### create df
data_df = {'Object': [123, 456, 789],
'Action': ['renovate', 'do something', 'review'],
'Cost1': [10000, 0, 1000],
'Cost2': [2000, 10, 50],
}
df = pd.DataFrame(data_df)
### create dictionary
dictionary = {'Object_new':['Object'],
'Action_new':['Action'],
'Total_Cost' : ['Cost1', 'Cost2']}
### create df_new
# data_df_new = pd.DataFrame(columns=['Object_new', 'Action_new', 'Total_Cost' ])
data_df_new = {'Object_new': [123, 456, 789],
'Action_new': ['renovate', 'do something', 'review'],
'Total_Cost': [12000, 10, 1050],
}
df_new = pd.DataFrame(data_df_new)