У меня есть два фрейма данных с разными размерами, один из которых больше другого, но у второго фрейма больше столбцов.
У меня проблемы с попыткой добавить фрейм данных, если у него один и тот же столбец& значение строки как другой фрейм данных, который в данном случае является id
, это некоторые фиктивные данные и то, как я пытался их решить
import pandas as pd
df1 = pd.DataFrame([(1,2,3),(3,4,5),(5,6,7),(7,8,9),(100,10,12),(100,10,12),(100,10,12)], columns=['id','value','c'])
df2 = pd.DataFrame([(1,200,3,4,6),(3,400,3,4,6),(5,600,3,4,6),(5,620,3,4,6)], columns=['id','value','x','y','z'])
, поэтому, если id df1
и df2
совпадают, затем добавьте значение столбца к значению в "whatToAdd"
data
df1:
id value c
1 2 3
3 4 5
5 6 7
7 8 9
100 10 12
100 10 12
100 10 12
df2:
id value x y z
1 200 3 4 6
3 400 3 4 6
5 600 3 4 6
5 620 3 4 6
Ожидается:
Out:
id value x y z
1 202 3 4 6
3 404 3 4 6
5 606 3 4 6
5 626 3 4 6
попробовано:
for each in df1.a:
if(df2.loc[df2['a'] == each]):
df2['a']+=df['a']
выдает ошибку «Истинное значение DataFrame неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ()."что сбивает с толку для меня, потому что я попытался:
df2.loc[df2['a']==1
из цикла, и это работает