在 groupby 操作期间重命名 pandas 数据框中的列
Renaming columns in pandas dataframe during groupby operation
我尝试重命名作为 groupby & count 操作结果获得的列,如下所示:
dfa = df.groupby('Product_ID').Product_ID.count().rename(columns={0: "Product",1:"Sale_count"}).reset_index()
print(dfa[:1])
获得的输出是
Product_ID 0
0 P00000142 1130
列名不是我指定的。所以我使用下面的命令再次更改它
dfa.columns =['product','sales']
print(dfa[:1])
product sales
0 P00000142 1130
然后我得到了预期的列名。但是我相信它应该在第一种方法 dataframe.rename 本身中获得。第一个代码片段有什么问题 dfa = df.groupby('Product_ID').Product_ID.count().rename(columns={0: "Product",1:"Sale_count"}).reset_index()
我没有得到预期的输出。
如评论所述,您需要:
df.groupby('Product_ID').size().reset_index(name='sales_count')
我尝试重命名作为 groupby & count 操作结果获得的列,如下所示:
dfa = df.groupby('Product_ID').Product_ID.count().rename(columns={0: "Product",1:"Sale_count"}).reset_index()
print(dfa[:1])
获得的输出是
Product_ID 0
0 P00000142 1130
列名不是我指定的。所以我使用下面的命令再次更改它
dfa.columns =['product','sales']
print(dfa[:1])
product sales
0 P00000142 1130
然后我得到了预期的列名。但是我相信它应该在第一种方法 dataframe.rename 本身中获得。第一个代码片段有什么问题 dfa = df.groupby('Product_ID').Product_ID.count().rename(columns={0: "Product",1:"Sale_count"}).reset_index()
我没有得到预期的输出。
如评论所述,您需要:
df.groupby('Product_ID').size().reset_index(name='sales_count')