#python #pandas
#python #pandas
Вопрос:
Для приведенного ниже:
summary_df = (df
.groupby(['provider', 'master_id'])
.agg(
content_type_id =('content_type_id', 'first'),
title =('title', 'first'),
release_year =('release_year', 'first'), ...
subs =('burned_in_sub_language', lambda x: str(sorted(i.lower() for i in x.dropna().unique())))
)
.reset_index()
)
Каким был бы правильный способ сделать это до введения именованных агрегатов, включая псевдоним столбцов?
Комментарии:
1. Вы можете передать как
dict
agg({"content_type_id":"first", "title:"first"...}
2. @HenryYik хорошо, но как тогда вы делаете переименования? Или вам нужен отдельный / цепной метод для выполнения этой части? Например, посмотрите, как
burned_in_sub_language
происходитsub
?
Ответ №1:
Как упоминал Генри Йик, используйте .agg(), за которым следует .rename() .
Например:
summary_df = (df
.groupby(['provider', 'master_id'])
.agg({'content_type_id':'first', 'title': 'first',})
.rename(columns={
'content_type_id': 'something else',
'title': 'changed_name',})
)
Комментарии:
1. Я вижу — так является ли «новый» способ просто кратким способом объединения этих двух методов?
2. @samuelbrody1249 да, я сам очень доволен этим, для меня это просто экономит дополнительный ввод текста, поэтому я использую новый способ, если мне нужно переименовать столбцы, что происходит большую часть времени