#python #pandas #pandas-groupby
#python #pandas #pandas-groupby
Вопрос:
Я пытаюсь расшифровать некоторый унаследованный код pandas и не могу определить, что список [[‘DemandRate’,’DemandRateQtr’,’AcceptRate’]] делает в этой строке кода:
plot_data = (my_dataframe.query("quote_date>'2020-02-01'")
.groupby(['quote_date'])[['DemandRate', 'DemandRateQtr', 'AcceptRate']]
.mean()
.reset_index()
)
Кто-нибудь может сказать мне, что делает список?
Комментарии:
1.
mean
будет применяться к группам только из этих столбцов[['DemandRate', 'DemandRateQtr', 'AcceptRate']]
Ответ №1:
Это фильтр по именам столбцов, здесь собраны только столбцы из списка.
['DemandRate', 'DemandRateQtr', 'AcceptRate']
Если есть какие-то другие столбцы, подобные этому списку и из by
списка (здесь ['quote_date']
), они опущены:
my_dataframe = pd.DataFrame({
'quote_date':pd.date_range('2020-02-01', periods=3).tolist() * 2,
'DemandRate':[4,5,4,5,5,4],
'DemandRateQtr':[7,8,9,4,2,3],
'AcceptRate':[1,3,5,7,1,0],
'column':[5,3,6,9,2,4]
})
print(my_dataframe)
quote_date DemandRate DemandRateQtr AcceptRate column
0 2020-02-01 4 7 1 5
1 2020-02-02 5 8 3 3
2 2020-02-03 4 9 5 6
3 2020-02-01 5 4 7 9
4 2020-02-02 5 2 1 2
5 2020-02-03 4 3 0 4
plot_data = (my_dataframe.query("quote_date>'2020-02-01'")
.groupby(['quote_date'])[['DemandRate', 'DemandRateQtr', 'AcceptRate']]
.mean()
.reset_index())
print (plot_data)
#here is not column
quote_date DemandRate DemandRateQtr AcceptRate
0 2020-02-02 5.0 5.0 2.0
1 2020-02-03 4.0 6.0 2.5
Комментарии:
1. Спасибо. Важно ли / важно, чтобы в списке использовались двойные скобки? [[ ]]
2. @bumblebear — да, в некоторых самых старых версиях проблем нет, в последней версии pandas выдается предупреждение, если его опустить.
3. @bumblebear —
FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.