【发布时间】:2019-10-31 04:27:28
【问题描述】:
(Python/熊猫) 我正在对英国房价数据进行一些分析,看看房价是否对附近学校的质量有反应。我已将最近的三所学校的 URN(唯一参考编号)与每个房价交易匹配。这些是数据中的 URN_1、URN_2、URN_3 列。
我想根据数据估计一个固定效应模型,其中固定效应基于最近的三所学校。因此,我想为三所学校的每个集群创建一个唯一 ID,并且我希望这不受学校顺序的影响。物业 A 和物业 B 应具有相同的 ID,尽管学校的顺序不同。
Property URN_1 URN_2 URN_3
A 100053 100052 100054
B 100052 100054 100053
有谁知道我如何使用 Python 创建唯一的集群 ID?
我尝试使用 .groupby() 来使用下面的代码创建 ID,但是当学校的顺序不同时,这会给出不同的集群 ID。
这是我尝试过的:
import pandas as pd
URN1=[1,2,3,4,5]
URN2=[5,4,3,2,1]
URN3=[1,2,3,2,1]
lst=['a','b','c','d','e']
df=pd.DataFrame(list(zip(URN1,URN2,URN3)),
columns['URN_1','URN_2','URN_3'],index=lst)
df['clusterid']=df.groupby(['URN_1','URN_2','URN_3']).ngroup()
print(df)
我希望观察结果 'a' 和 'e' 具有相同的集群 id,但是通过这种方法它们被赋予了不同的 id。
【问题讨论】:
标签: python pandas uniqueidentifier