Python 如何在按Pandas.groupby().ngroup()分组后按ID取回组名
我已按ID将我的数据分组到熊猫中Python 如何在按Pandas.groupby().ngroup()分组后按ID取回组名,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我已按ID将我的数据分组到熊猫中 df['cityID']=df.groupby(['city']).ngroup() df = names city cityID ali Islamabad 0 john lahore 1 aslam Islamabad 0 khan Peshawar 2 umair lahore 1 df2 =
df['cityID']=df.groupby(['city']).ngroup()
df =
names city cityID
ali Islamabad 0
john lahore 1
aslam Islamabad 0
khan Peshawar 2
umair lahore 1
df2 =
cityID city
2 ?
1 ?
2 ?
2 ?
0 ?
1 ?
1 ?
2 ?
1 ?
0 ?
2 ?
0 ?
经过计算后,我得到了cityid,我想用python将它们转换回pandas中的城市名称。
使用CityID填充如果我理解正确,您希望基于其他列检索列值:
print(df.loc[df['cityID'] == 1, 'city'].iloc[0])
但是,如果您希望根据字典为列赋值,请执行以下操作:
d = {0: 'Islamabad', 1: 'lahore', 2: 'Peshawar'}
df["New_col"] = df["cityID"].apply(lambda x: d.get(x))
您可以添加一些示例数据和示例吗?请显示您的行数据,以及您想要实现的目标。对于上面的示例,如果我在10个ID上有一列,那么如何根据ID分配各自的城市名称没有其他方法,因为我有100多个组无法分配字典中的所有人?请尝试加入这两个数据框
df2=df2.join(df,on='cityID')