回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个大班级的学生分成几个部分,每个学生都有一个唯一的ID。我有一个数据框中存储的整个名册。我也有多个数据框,代表特定作业中特定部分学生的成绩。我想将所有这些信息合并到一个表示成绩册的数据框中。例如:</p>
<pre><code>import pandas as pd
# Initialize roster
data = [['ab10', 'Ann Big'], ['ca9', 'Carl Ahn'], ['jb19', 'John Brown'], ['cf25', 'Carol Fox']]
roster = pd.DataFrame(data, columns = ['ID', 'Name'])
# Initialize the section grades
data = [['ab10', 95], ['ca9', 72]]
grades0 = pd.DataFrame(data, columns = ['ID', 'Exp1'])
data = [['ab10', 83], ['ca9', 97]]
grades1 = pd.DataFrame(data, columns = ['ID', 'Exp2'])
data = [['jb19', 61], ['cf25', 95]]
grades2 = pd.DataFrame(data, columns = ['ID', 'Exp1'])
# Now merge the section grades with the roster to generate final gradebook
roster = roster.merge(grades0, on = 'ID', how = 'outer')
roster = roster.merge(grades1, on = 'ID', how = 'outer')
roster = roster.merge(grades2, on = 'ID', how = 'outer')
print(roster)
</code></pre>
<p>此代码生成以下内容:</p>
<pre><code> ID Name Exp1_x Exp2 Exp1_y
0 ab10 Ann Big 95.0 83.0 NaN
1 ca9 Carl Ahn 72.0 97.0 NaN
2 jb19 John Brown NaN NaN 61.0
3 cf25 Carol Fox NaN NaN 95.0
</code></pre>
<p>我不想要后缀为x和y的重复Exp1列。相反,我想要:</p>
<pre><code> ID Name Exp1 Exp2
0 ab10 Ann Big 95.0 83.0
1 ca9 Carl Ahn 72.0 97.0
2 jb19 John Brown 61.0 NaN
3 cf25 Carol Fox 95.0 NaN
</code></pre>
<p>坡度数据帧之间不应存在重复数据(但如果存在重叠,则最好提出错误)</p>