Python 如何在按Pandas.groupby().ngroup()分组后按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 =

我已按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 =

    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')