我有两个如下所示的数据框
import pandas as pd
import numpy as np
random = np.random.RandomState(seed=123)
columns = ['Assessment Type', 'Weight %']
assessment = ['Mid-Term', 'Quiz', 'Final Exam', 'Assignment']
wight = [30, 20, 35, 15]
df1 = pd.DataFrame(np.column_stack([assessment, wight]),
columns=columns)
df1['Weight %'] = df1['Weight %'].apply(int)
df2 = pd.DataFrame(random.randint(0, 100, size=(4, 8)), columns=list('ABCDEFGH'))
df2.iloc[0, :] = ['', 'Mid-Term', 'Quiz', 'Mid-Term', 'Quiz', '', 'Final Exam', '']
df2.iloc[1, :] = ['' for i in range(df2.columns.size)]
df1
=
Assessment Type Weight %
0 Mid-Term 30
1 Quiz 20
2 Final Exam 35
3 Assignment 15
df2
=
A B C D E F G H
0 Mid-Term Quiz Mid-Term Quiz Final Exam
1
2 78 36 96 80 68 49 55 67
3 2 84 39 66 84 47 61 48
我想在df1
中相同的等级评估类型之间平均分配df2
中的等级权重>
上述情况的期望输出如下。
A B C D E F G H 0 Mid-Term Quiz Mid-Term Quiz Final Exam 1 15 10 15 10 35 2 78 36 96 80 68 49 55 67 3 2 84 39 66 84 47 61 48
有人可以帮助在熊猫中实现这一目标。
感谢和问候
[我有两个数据框,如下所示导入熊猫为pd导入numpy为np随机= np.random.RandomState(seed = 123)列= ['评估类型','重量%']评估= [中期','Quiz','...
尝试一下:
一种简单的方法是使用评估和权重的字典将第0行的值映射到第1行(要用实际权重填充的行)。
我尝试了这个并且奏效了。