我有一个数据框 dfScore
dfScore = pd.DataFrame([["ringo", 0,0,0]], columns=["Name","Sales total","Problem total","Finance total"])
Name Sales total Problem total Finance total
0 ringo 0 0 0
和数据框类别
data = [["Finance total", 14], ["Sales total", 4], ["Problem total", 5]]
categories = pd.DataFrame(data, columns = ['Category', 'ScoreTruth'])
Category ScoreTruth
0 Finance total 14
1 Sales total 4
2 Problem total 5
我想做的是检查类别中“类别”的值是否包含在 dfScores 列中。如果是,则将 dfScores 列中的值设置为“ScoreTruth”相邻值。我尝试使用 isin 来获取 dfScores 列中的索引,但这实际上并没有告诉我哪个类别是哪个索引。IE
index = np.where(dfScore.columns.isin(categories["Category"]))
print(index[0])
>>>[1 2 3]
如果我尝试以相反的方式从 is 获取索引,我会得到
index2 = np.where(categories["Category"].isin(dfScore.columns))
print(index2[0])
>>>[0 1 2]
所以现在我想我可以做这样的事情dfScore.iloc[:,index[0]] = categories.iloc[index2[0]].loc["ScoreTruth"]来设置值,但我发现KeyError: 'ScoreTruth'显然只有当我使用索引 [0] 设置 dfScores 中的每一行时这才有效,这并不理想。
我想输出一个看起来像这样的数据框
Name Sales total Problem total Finance total
0 ringo 4 5 14
犯罪嫌疑人X
相关分类