Умножьте два фрейма данных с одинаковыми именами столбцов, но с разными индексами - PullRequest
0 голосов
/ 10 июля 2020

У меня есть два фрейма данных, один с данными, другой со списком предположений прогнозирования. Имена столбцов соответствуют, а уровни индекса - нет (по замыслу). Пожалуйста, покажите мне, как умножить столбцы A, B и C в df1 на соответствующие столбцы в df2, как в моем примере ниже, и с оставшейся частью исходного фрейма данных (также известной как столбец D) без изменений . Спасибо!

df1list=[1,2,3,4,5,6,7,8,9,10]
df2list=[2017]
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD'), index=list(df1list))
df2 = pd.DataFrame(np.random.randint(1,4,size=(1, 3)), columns=list('ABC'), index=list(df2list))

1 Ответ

1 голос
/ 10 июля 2020
>>>df[['A','B','C']] * df2.values

      A    B    C
1    81  168  116
2    21    8    6
3   147  108   52
4    54   64  114
5    48   16   20
6    72  116   12
7    36  188  178
8    90   96  162
9    63  166  156
10  120   22   10

Итак, чтобы перезаписать, вы можете сделать:

df.loc[:,['A','B','C']] = df[['A','B','C']] * df2.values

И я думаю, чтобы быть более программным c вы можете:

df[df2.columns] *= df2.values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...