В зависимости от фактической структуры вашего xml, может быть полезно поместить ее в нее, чтобы было проще использовать «регулярный» sql, например
CREATE VIEW vwLogTable
AS
SELECT
c.p.value('@name', 'varchar(10)') name,
c.p.value('@value', 'varchar(10)') value
FROM
LogTable
CROSS APPLY x.nodes('/container/param') c(p)
GO
-- now you can get all values for paramB as...
SELECT value FROM vwLogTable WHERE name = 'paramB'
Вы просто ищете join
, в пандах мы используем pd.merge
для этого, например:
df3 = pd.merge(df1, df2, on='Category')
ID Category Value1 Value2 Value 1 Average Value 2 Average
0 111 1 5 7 4 5
1 112 1 3 8 4 5
2 113 2 6 9 6 7
3 114 3 2 6 9 2
Официальная документация pandas
о слиянии:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html
Вот хорошее объяснение объединений: Панды слияния 101
Просто сделайте: df1.groupby(['ID', 'Category']).transform(func='mean')
на первом кадре данных, чтобы получить желаемый кадр данных.