pandas - 添加带有规范化选定值的列

时间:2015-09-13 11:54:09

标签: python pandas

我在this问题中发现了一些问题,所以我想再深入一点。我有以下数据框lefthalf[N]

df

我想添加一个名为H,Nu,City,L,C 0.965392,15,Madrid,es,es 0.920614,15,Madrid,it,es 0.726219,16,Madrid,tn,es 0.739119,17,Madrid,fr,es 0.789923,55,Dublin,mt,en 0.699239,57,Dublin,en,en 0.890462,68,Dublin,ar,en 0.746863,68,Dublin,pt,en 0.789923,55,Milano,it,it 0.699239,57,Milano,es,it 0.890462,68,Milano,ar,it 0.746863,68,Milano,pt,it 的列,定义为:

Hm

到目前为止,我找到了正确的值/城市:

Hm = H/(H,City - where L==C)

获得:

gp = df.groupby('City')
mask = gp.apply(lambda x: x['L'] == x['C'])
lookup = df.loc[mask[mask].reset_index(level=0).index]

HmCity Nu City L C 5 0.699239 57 Dublin en en 0 0.965392 15 Madrid es es 8 0.789923 55 Milano it it 值现在是规范化的正确值。我现在如何添加新列Hm,以便在H的相应位置缩放新数据帧?例如:

lookup

我想避免使用H,Nu,City,L,C,Hm 0.965392,15,Madrid,es,es,1,0 0.920614,15,Madrid,it,es,** 0.726219,16,Madrid,tn,es,** 0.739119,17,Madrid,fr,es,** 0.789923,55,Dublin,mt,en,** 0.699239,57,Dublin,en,en,1,0 0.890462,68,Dublin,ar,en,** 0.746863,68,Dublin,pt,en,** 0.789923,55,Milano,it,it,1,0 0.699239,57,Milano,es,it,** 0.890462,68,Milano,ar,it,** 0.746863,68,Milano,pt,it,** 因为导致我做出不正确的行为。

编辑:

澄清:我们可以添加一个新列merge,其中包含每个城市的相应HmCity值:

Hm

0 个答案:

没有答案