这是我的命令组:
pdf_chart_data1 = pdf_chart_data.groupby('sell').value.agg(['sum']).rename(
columns={'sum':'valuesum','sell' : 'selltime'}
)
我可以更改列名称的值,但不能更改' sell'。 请帮助解决此问题。
答案 0 :(得分:13)
您无法重命名,因为它是index
。您可以为返回as_index=False
添加DataFrame
或添加reset_index
:
pdf_chart_data1=pdf_chart_data.groupby('sell', as_index=False)['value'].sum()
.rename(columns={'sum':'valuesum','sell' : 'selltime'})
或者:
pdf_chart_data1=pdf_chart_data.groupby('sell')['value'].sum()
.reset_index()
.rename(columns={'sum':'valuesum','sell' : 'selltime'})
答案 1 :(得分:1)
df = df.groupby('col1')['col1'].count()
df1= df.to_frame().rename(columns={'col1':'new_name'}).reset_index()
答案 2 :(得分:0)
如果您使用相同的索引加入 groupby,其中一个是 nunique -> 唯一项目的数量,一个是唯一项目 -> 唯一项目列表,那么您将获得两列名为 Sport 的列。使用 as_index=False 我能够使用 rename 重命名第二个运动名称,然后将两个列表连接在一起并按运动降序排序并显示 10 个 5 运动计数。
grouped=df.groupby('NOC', as_index=False)
Nsport=grouped['Sport'].nunique()\
.rename(columns={'Sport':'SportCount'})
Nsport=Nsport.set_index('NOC')
country_grouped=df.groupby('NOC')
Nsport2=country_grouped['Sport'].unique()
df2=pd.concat([Nsport,Nsport2], join='inner',axis=1).reindex(Nsport.index)
df2=df2.sort_values(by=["SportCount"],ascending=False)
print(df2.columns)
for key,item in df2.head(5).iterrows():
print(key,item)