У меня есть набор данных панели как df
stock year date return
VOD 2017 01-01 0.05
VOD 2017 01-02 0.03
VOD 2017 01-03 0.04
... ... ... ....
BAT 2017 01-01 0.05
BAT 2017 01-02 0.07
BAT 2017 01-03 0.10
, поэтому я использую этот код, чтобы получить среднее значение и асимметрию доходности для каждой акции в каждом году.
df2=df.groupby(['stock','year']).mean().reset_index()
df3=df.groupby(['stock','year']).skew().reset_index()
df2
и df3
выглядят хорошо.
df2
похоже (после того, как я изменю имя столбца)
stock year mean_return
VOD 2017 0.09
BAT 2017 0.14
... ... ...
df3
похоже (после того, как я изменю имя столбца)
stock year return_skewness
VOD 2017 -0.34
BAT 2017 -0.04
... ... ...
Проблема в том, что когда я пытался объединить df2
и df3
, используя
want=pd.merge(df2,df2, on=['stock','year'],how='outer')
, python дал мне
'The column label 'stock' is not unique.
For a multi-index, the label must be a tuple with elements corresponding to each level.'
, что меня смущает много.
Я могу использовать want = pd.merge(df2,df3, left_index=True, right_index=True, how='outer')
для объединения df2
и df3
, но после этого мне нужно переименовать столбцы, поскольку имена столбцов в скобках.
Есть ли какой-нибудь удобный способобъединить df2
и df3
?Спасибо