首页 > 解决方案 > 通过 Pandas.groupby().ngroup() 分组后如何通过 ID 取回组名

问题描述

我已按 ID 将我的数据分组到 pandas


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        ?



经过计算后,我得到了城市 ID,我想使用 python 将它们转换回熊猫中的城市名称。使用 cityID 填充

标签: pythonpandaspandas-groupby

解决方案


如果我理解正确,您想根据其他列检索列值:

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

推荐阅读