我有一个包含一些元数据的 pandas.DataFrame
(df
),其中有一个 ID
、Column
和 Value
,我想将它与另一个 df
组合起来,例如:
df_map = pd.DataFrame({"ID" : [3, 7, 17], "Column" : ["A1", "B7", "C17"],
"Value" : ["ValA1", "ValB7", "ValC17"]})
我想将上面的内容(用缺乏更好单词的话来说)与下面的
df
相结合,其中列名与上面的Column
行条目匹配,下面df
中的行值与上面的ID
行值匹配。df_main = pd.DataFrame({"A1" : [3, 6], "A5" : [5, 10], "B7" : [7, 14] ,
"C17" : [17, 34], "C19" : [19, 38] })
因此,我希望以一种方式合并这些
df
,以便根据ID's
匹配的情况下,将Value
列作为附加维度添加到重塑后的数据框中。即:df_result = combine(df_map, df_main)
。
基本上我期望以下结果。df_result = pd.DataFrame({"A1" : [3, 6], "A5" : [5, 10], "B7" : [7, 14] ,
"C17" : [17, 34], "C19" : [19, 38], "Value A1" : ["ValA1", None],
"Value B7" : ["ValB7", None], "Value C17" : ["ValC17", None ]})
Out[30]:
A1 A5 B7 C17 C19 Value A1 Value B7 Value C17
0 3 5 7 17 19 ValA1 ValB7 ValC17
1 6 10 14 34 38 None None None
不确定在 pandas
中做这件事的最佳方法是什么?
["A1", "B7", "C17"]
中有错别字吗?也许正确的是["A3", "B7", "C17"]
。 - jezraeldf_map
中的列A1
被映射到df_main
的列A3
? - Quang Hoang