Python group by()之后只有一列
我从R转换到Python来满足我的大部分数据分析需求,我遇到了以下问题。可能是我对groupby()概念理解的结果 我有一个Pandas数据框架,并试图根据许多列总结数据。下面的代码告诉我我想要什么Python group by()之后只有一列,python,pandas,Python,Pandas,我从R转换到Python来满足我的大部分数据分析需求,我遇到了以下问题。可能是我对groupby()概念理解的结果 我有一个Pandas数据框架,并试图根据许多列总结数据。下面的代码告诉我我想要什么 df = df[(df["Lead Source"] != "chase") & (df["Lead Source"] != "SNE")] ndf = df[["Date", "Lead Source", "Model Group", "Leads"]].groupby(["Date",
df = df[(df["Lead Source"] != "chase") & (df["Lead Source"] != "SNE")]
ndf = df[["Date", "Lead Source", "Model Group", "Leads"]].groupby(["Date", "Lead Source"]).sum()
这看起来很不错,但我注意到在运行以下内容时只有一个“真实”列。(仅供参考的ndf2仅为ndf的副本)
此外,对行的索引显示这并不是我所希望的
如何调整行以使列名显示在第一行上。输出应该如下所示
Date Lead Source Leads
1/1/2014 ... ...
... ...
... ...
您可以使用:
ndf.reset_index()
请注意,groupby操作正在创建具有。由于您是按Date
和Lead Source
进行分组的,因此这些是多索引的级别名称。之所以Date
和Lead Source
在列名下面显示一行,是因为Pandas试图表明这些是索引级别的名称,而不是列。(查看ndf.index.names
)调用将索引级别移动到列中,并对索引重新编号
或者,最好在调用groupby
时使用:
ndf = (df[["Date", "Lead Source", "Model Group", "Leads"]]
.groupby(["Date", "Lead Source"], as_index=False).sum())
聚合时,as_index=False
将阻止分组值用作索引值
ndf = (df[["Date", "Lead Source", "Model Group", "Leads"]]
.groupby(["Date", "Lead Source"], as_index=False).sum())