如何使用熊猫从一个文件向另一文件添加列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用熊猫从一个文件向另一文件添加列相关的知识,希望对你有一定的参考价值。
我有两个数据集:grades.csv和rubric.csv
csv年级的样本如下:
Student ID,Question 1,Question 2,Question 3,Question 4,Question 5,Question 6
205842,6.5,6.5,9.5,5.5,3.5,9.5
280642,8.5,9.5,3.5,9.5,4,9.5
并且标题csv看起来像这样:
Question,Max score
Question 1, 20
Question 2, 10
Question 3, 10
Question 4, 15
Question 5, 10
Question 6, 25
我希望能够将标准csv中的“最高分”列添加为csv年级中的另一列。
到目前为止,我有以下内容。我假设grades.csv需要解构或倒置t
grades_df = pd.read_csv(grades)
rubric_df = pd.read_csv(rubric)
grades_dft = grades_df.T
答案
只需这样分配:
grades_df = pd.read_csv(grades)
rubric_df = pd.read_csv(rubric)
grades_df['Max score'] = rubric_df['Max score']
print(grades_df)
或者,如果您想非常明确地添加类似@jakub的新列,请提及:
grades_df.loc[:, 'Max_score'] = rubric_df['Max score']
您将获得此:
Student ID Question 1 Question 2 Question 3 Question 4 Question 5 Question 6 Max score
0 205842 6.5 6.5 9.5 5.5 3.5 9.5 20
1 280642 8.5 9.5 3.5 9.5 4.0 9.5 10
另一答案
这是您的追求吗? :
(df.melt(id_vars='Student ID')
.rename(columns={'variable':'Question'})
.merge(df1,how='left', on='Question'))
Student ID Question value Max score
0 205842 Question 1 6.5 20
1 280642 Question 1 8.5 20
2 205842 Question 2 6.5 10
3 280642 Question 2 9.5 10
4 205842 Question 3 9.5 10
5 280642 Question 3 3.5 10
6 205842 Question 4 5.5 15
7 280642 Question 4 9.5 15
8 205842 Question 5 3.5 10
9 280642 Question 5 4.0 10
10 205842 Question 6 9.5 25
11 280642 Question 6 9.5 25
以上是关于如何使用熊猫从一个文件向另一文件添加列的主要内容,如果未能解决你的问题,请参考以下文章
如何在熊猫数据框中的所有列中搜索模式,并在找到时将其复制到另一列