如果我有这个系列:
df = pd.DataFrame({'values':[1,22.2,3.4,4.2,55.4,6.3],
'dates':['2019-10-01','2019-10-01','2019-10-01','2019-10-02','2019-10-02','2019-10-02'],
'names':['name1','name2','name3','name1','name2','name3']})
df = df.set_index(['dates','names']).squeeze()
我正在考虑使用.groupby
和.apply
,但是我对正在发生的事情感到困惑。
如果我尝试应用该功能:
def my_func(data):
return data.to_frame()
使用:
df.groupby('dates').apply(my_func)
我得到以下输出:
2019-10-01 2019-10-02
dates names
2019-10-01 name1 1.0 NaN
name2 22.2 NaN
name3 3.4 NaN
2019-10-02 name1 NaN 4.2
name2 NaN 55.4
name3 NaN 6.3
在使用df.name
之后,为什么droplevel
被groupby变量名代替?