Pandas: запрос () groupby () означает (), используя список второго столбца

#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.