根据另外两列中的值,在一个数据框中使用另一个数据框中的值填充新列? (Python的/大熊猫)

时间:2017-11-29 14:41:26

标签: python pandas dataframe multiple-columns

我需要在数据框中添加一个列,并用另一个数据框中的值填充它,但我没有在它们之间共享的唯一ID或键或索引。它们有两个共同的标识符,它们之间的每一行都是唯一的,我想在这两列上尝试匹配。

这是一个例子......

Student ID  Test Day        Student ID  Test Day    Grade
E0304003    Quiz 1      E0304003    Quiz 1  A
E3305002    Quiz 1      E0303003    Test 2  A
E0303002    Test 1      E0304005    Quiz 2  D
E0304004    Quiz 1      E3306001    Test 1  C
E0301001    Quiz 1      E0301001    Quiz 1  A
E0307002    Test 2      E0307002    Test 2  C
E0303003    Test 2      E0308002    Quiz 2  A
E0304005    Quiz 2      E0301002    Test 2  C
E3306001    Test 1      E3305002    Quiz 1  C
E0308002    Quiz 2      E0303002    Test 1  F
E0301002    Test 2      E0304004    Quiz 1  C

我想在第一组中创建第三列,也是Grade,并且对于与其他数据框中的学生ID和测试日匹配的行包含相同的值。

你可以看到每个集合中的列顺序不匹配,并且在实际数据中会有缺失值,所以我需要它是动态的;它并不像排序和匹配那么简单。

我可以这样做:

For row in df_one:
        if df_one["Student ID"] == df_two["Student ID"] and df_one["Test Day"] == df_two["Day"]:
                df_one["Grade"] = df_two["Grade"]
        else:
                df_one["Grade"] = "Unknown"

1 个答案:

答案 0 :(得分:1)

对左联接使用merge,如果某些值不匹配,则$(document).ready(function () { $.getJSON("/fakturi/getArticles?CompanyID=" + cID, function (data) { $.each(data, function (i, data) { $('<option>', { value: data.artID, text: data.artIme }).html; }); }) $(function () { $("[name='artikal']").on("change", function () { $("#bar").val($(this).val()); }); }); }); 替换为fillna

NaN