这段代码包含以下列:index, area, key0
我有这些专栏:
index, area, key0
我必须按索引分组(它是一个名为index的普通列)才能获取具有相同值的行。
#all the ones, all the twos, etc
其中一些(行)是独一无二的。
关于那些现在不独特的:
到目前为止我做了什么:
我必须检查哪个组具有最大区域的组,并在名为key0
的新列中将其受尊重的key1
值提供给其组中的其他组。
唯一值仍将与现在key0
列中key1
中的值相同
df["rank_gr"] = df.groupby("index")["area"].rank(ascending = False, method =
"first")
df["key1_temp"] = df.apply(lambda row: str(row["key0"]) if row["rank_gr"] == 1.0
else (""), axis = 1)
df["key1"] = df.groupby("index")["key1_temp"].transform("sum")
print (df[["area", "index", "key0", "key1"]])
# expected OUTPUT
area index key0 key1
50 1 1f 5
60 2 2 6
70 3 3d 3d
80 5 4 4
90 1 5 5
100 2 6 6
10 3 7 3d
20 3 8 3d
70 3 9 3d
给出了这个:
TypeError: 'str' object cannot be interpreted as an integer
During handling of the above exception, another exception occurred:
KeyError: ('', 'occurred at index 0')
出错的行是:
df["key1_temp"] = df.apply(lambda row: str(row["key0"]) if row["rank_gr"] == 1.0
else (""), axis = 1)