如何使用熊猫从一个文件向另一文件添加列

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

以上是关于如何使用熊猫从一个文件向另一文件添加列的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫数据框中的所有列中搜索模式,并在找到时将其复制到另一列

如何使用熊猫复制行(列)的元素并粘贴到csv中的第1行(另一列)?

如何使用熊猫将一列移动到除标题之外的另一列[重复]

为啥熊猫转换后在csv文件的开头添加数字[重复]

熊猫通过根据另一列的值添加列级别来重塑数据框[重复]

如何将数据作为列写入熊猫