【发布时间】:2019-10-15 10:14:50
【问题描述】:
我有一个数据框,df
在循环中,每次迭代我都会创建此 Dataframe temp_df 的副本。几乎一样,只是略有不同。
我有一个分类模型,model。 classification_results 函数返回一个由 0 和 1 组成的数组,它告诉我 temp_df 的每个元素的预测类别
我想获取 temp_df 的所有预测类别 = 1 的元素,并将这些确切元素的值的总和存储在另一列中。
整个代码是这样的:
for c in range(number_of_iterations):
temp_df = df.copy()
temp_df["my_column"] = df.apply(lambda row: my_function(row, c), axis=1)
results[c] = temp_df[classification_results(model, temp_df)].another_column.sum()
地点:
classification_results(model, temp_df)
返回类似:
array([1., 0., 1., 1., 0., 1., 0.])
所以我希望:
temp_df[classification_results(model, temp_df)]
返回一个只有来自 temp_df 的几个元素的 df,就像我在做类似的事情:
temp_df[temp_df["a_column"] == Something]
相反,运行我获得的代码:
KeyError: "None of [Float64Index([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
...
1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
dtype='float64', length=761)] are in the [columns]"
我找不到答案。我做错了什么?
【问题讨论】:
-
试试:
results[c] = temp_df[classification_results(model, temp_df) == 1].another_column.sum() -
@Aryerez 它有效,您可以直接发布它作为答案
-
没有足够的工作来回答:)
标签: python pandas indexing keyerror