【问题标题】:Assigning ID values to obs that share multiple characteristics将 ID 值分配给共享多个特征的 obs
【发布时间】:2019-07-25 15:49:58
【问题描述】:

有以下数据集

data = {'Country': ['UK','Ireland', 'Ireland', 'South Africa','Botswana','Italy','Greece'], 
        'Sub_ISO': ['Europe', 'Europe', 'Europe', 'Southern Africa','Southern Africa','Europe', 'Europe'], 
        'Language': ['EN', 'EN', 'IR',  'EN', 'EN', 'ITA', 'GRE'], 
        'count': [170,170, 170, 65,64,53,150]}
df = pd.DataFrame(data=data)

我想做的是能够用一个唯一的 ID 号来识别那些在同一个 Sub_ISO 中并且说同一种语言的国家。抱歉,我不知道该怎么做,所以我真的不能提供更多的代码。

预期输出

****编辑

爱尔兰和其他有不止一种语言的国家重复

【问题讨论】:

  • 输出应该是什么样子的?你也能发一下吗?谢谢
  • 完成,任何不匹配的(不同的 Sub_ISO,不同的语言)都是 NaN

标签: python pandas identify


【解决方案1】:

这个好像行得通!

df['new_id'] = df.groupby(['ISO_Sub_Region','Official language']).ngroup()

【讨论】:

  • 我会为 NaN 建议 df['ID']=np.where(df.duplicated(['Sub_ISO','Language'],keep=False),df.groupby(['Sub_ISO','Language']).ngroup(),np.nan)
猜你喜欢
  • 2019-08-07
  • 2017-01-12
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多