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