Как добавить элементы списка в элементы строки в базе данных pandas

у меня есть эта база данных под названием db в pandas

 index     win  loss  moneywin  moneyloss
player1     5     1       300        100
player2    10     5       650        150
player3    17     6      1100       1050
player11  1010   105     10650      10150
player23  1017   106    101100     101050

и я хочу добавить элементы list1 к элементам db

list1 = [[player1,105,101,10300,10100],[player3,17,6,1100,1050]]

поэтому результаты будут db2

index     win   loss   moneywin  moneyloss
player1   110    102   10600      10200
player2    10     5     650         150
player3    34     12    2200       2100
player11  1010   105   10650      10150
player23  1017   106   101100    101050

как я могу это сделать?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
7
0
91
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете попробовать с add после создания столбцов

s = pd.DataFrame(list1,columns=df.columns).set_index('index')
df = df.set_index('index')
df = df.add(s,fill_value=0)
df
Out[108]: 
             win   loss  moneywin  moneyloss
index                                       
player1    110.0  102.0   10600.0    10200.0
player11  1010.0  105.0   10650.0    10150.0
player2     10.0    5.0     650.0      150.0
player23  1017.0  106.0  101100.0   101050.0
player3     34.0   12.0    2200.0     2100.0
list1 = [['player1','105','101','10300','10100'],['player3','17','6','1100','1050']]

df.append(pd.DataFrame(list1,columns=df.columns)).sort_values(by=['index'])

     index   win loss moneywin moneyloss
0   player1     5    1      300       100
0   player1   105  101    10300     10100
3  player11  1010  105    10650     10150
1   player2    10    5      650       150
4  player23  1017  106   101100    101050
2   player3    17    6     1100      1050
1   player3    17    6     1100      1050
Ответ принят как подходящий

Решение 1:

Создайте фрейм данных из list1, затем concat его с заданным фреймом данных, затем сгруппируйте по index и агрегируйте оставшиеся столбцы, используя sum

df1 = pd.DataFrame(list1, columns=df.columns)
df_out = pd.concat([df, df1]).groupby('index', sort=False).sum()

Решение 2:

Создайте фрейм данных из list1, затем add его с данным фреймом данных, используя общий index

df1 = pd.DataFrame(list1, columns=df.columns)
df_out = df.set_index('index').add(df1.set_index('index'), fill_value=0)

Результат:

print(df_out)

           win  loss  moneywin  moneyloss
index                                    
player1    110   102     10600      10200
player2     10     5       650        150
player3     34    12      2200       2100
player11  1010   105     10650      10150
player23  1017   106    101100     101050

спасибо за ответ, это именно то, что я хотел, но это вызвало еще один вопрос ... что, если я хочу сделать сложную математическую формулу вместо простого добавления двух элементов, таких как среднее значение, дисперсия или какая-то другая формула? Есть ли предопределенная функция, такая как добавление, или есть способ настроить то, что я хочу сделать?

solarchick 19.03.2022 23:46

Другие вопросы по теме