Sha*_*ect 5 python dataframe pandas
我有两个表,如下所示
ID param1 param2 param3
0 A12 2 1 1
1 B15 1 2 1
2 B20 2 2 1
...
Run Code Online (Sandbox Code Playgroud)
和
parameter value weight
0 param1 1 10
1 param1 2 13
2 param2 1 21
3 param2 2 39
4 param3 1 49
5 param3 2 61
Run Code Online (Sandbox Code Playgroud)
采用第一个数据帧的最佳方法是什么,在第二个数据帧中查找每个参数的权重并返回如下的数据帧?
ID param1 param2 param3
0 A12 13 21 49
1 B15 10 39 49
2 B20 13 39 49
Run Code Online (Sandbox Code Playgroud)
我想的是编写一个函数给定参数,值,子集table2如下,
table2[(table2['parameter'] = parameter) & (table2['value'] = value)]并对table1中的每一列做一些矢量化应用程序,但我不知道如何遍历每个值并进行查找.
一种选择是转换table1为长格式,与table2参数和值合并,然后将其转换回宽格式:
In [85]: pd.merge(pd.melt(df1, id_vars='ID'), df2,
left_on=['variable', 'value'], right_on=['parameter', 'value']
).pivot('ID', 'parameter', 'weight')
Out[85]:
parameter param1 param2 param3
ID
A12 13 21 49
B15 10 39 49
B20 13 39 49
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |