KeyError :('','发生在索引0')

时间:2018-06-19 06:49:22

标签: python-3.x pandas group-by

这段代码包含以下列: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)

0 个答案:

没有答案