Python pandas groupby和droplevel更改系列名称

Python pandas groupby和droplevel更改系列名称,python,pandas,Python,Pandas,如果我有这个系列: 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 = 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

为什么使用
droplevel
后,
df.name
被groupby变量名替换

你想干什么?这里为每个日期创建一个dfin
my_func
我最终尝试将
数据
与另一个具有类似索引的数据框
t
合并到
中。然后我希望
merged['values']
返回与
data.values相同的值
merged['values']
引发错误,因为
data.name
未传递到数据帧。我简化了我的帖子来说明我的问题,没有得到关于如何合并数据帧的一大堆建议。你想合并什么数据帧?你能提供合并问题的完整代码吗。groupby实际上创建了一个包含两个系列的数据帧。数据帧没有
.name
属性,组成数据帧的两个
系列
确实有与其列名对应的名称,因此
合并了['2019-10-01']。name=='2019-10-01'
问题不在于合并数据帧。这是关于groupby如何生成列名称与特定组名称匹配的数据帧。您想做什么?这里为每个日期创建一个dfin
my_func
我最终尝试将
数据
与另一个具有类似索引的数据框
t
合并到
中。然后我希望
merged['values']
返回与
data.values相同的值
merged['values']
引发错误,因为
data.name
未传递到数据帧。我简化了我的帖子来说明我的问题,没有得到关于如何合并数据帧的一大堆建议。你想合并什么数据帧?你能提供合并问题的完整代码吗。groupby实际上创建了一个包含两个系列的数据帧。数据帧没有
.name
属性,组成数据帧的两个
系列
确实有与其列名对应的名称,因此
合并了['2019-10-01']。name=='2019-10-01'
问题不在于合并数据帧。它是关于groupby如何生成列名称与特定组名称匹配的数据帧。