【发布时间】:2018-02-14 14:08:39
【问题描述】:
目标:希望以编程方式匹配两列中的组合以找到另一列的最小值
假设我有这个:
import pandas as pd
d = {'Part_1': [91, 201, 201],
'Part_2': [201,111,91],
'Result': [3,3, 3],
'Sub-Score': [0.60, 0.8,0.9],
'Final-Score': [0,0,0]}
df = pd.DataFrame(data=d)
df
我想从可以分配给 Final-Score 列的子分数列中找到最小值。我需要根据匹配的 Part_1 和 Part_2 进行选择(这两个部分的位置可以不同):
d_new = {'Part_1': [91, 201, 201],
'Part_2': [201,111,91],
'Result': [3,3, 3],
'Sub-Score': [0.60, 0.8,0.9],
'Final-Score': [0.6,.8,.6]}
df_new = pd.DataFrame(data=d_new)
df_new
在这里我们可以看到 row 0 和 row 2 在 Part_1 和 列中具有 相同的值 strong>Part_2,它们完全是乱序的。此外,我们可以看到 row 0 的 Sub-Score 值为 0.60,row 2 的 Sub-Score 值为 0.9。
我希望从 row 0 分配 Sub-Score 值(因为它是 row 0 和 row 2 中的最低值)到第 0 行和 第 2 行 的最终得分列。 Row 1 没有可比性,也没有与 row 0 和 row 2 相同的部分,因此我们将其 Sub-score 结转值改为 Final-Score 值。
任何帮助将不胜感激。
(已编辑):
输入:
Final-Score Part_1 Part_2 Result Sub-Score
0 0 91 201 3 0.6
1 0 201 111 3 0.8
2 0 201 91 3 0.9
期望的输出:
Final-Score Part_1 Part_2 Result Sub-Score
0 0.6 91 201 3 0.6
1 0.8 201 111 3 0.8
2 0.6 201 91 3 0.9
【问题讨论】:
标签: python python-3.x pandas dataframe