df1的A列数据为[1,5,3,7,8],B列数据为[1,1,1,1,1],df2的A列数据为[1,7,8,5,3],B列数据为[2,1,4,7,6],df1与df2的A列数据值相同但是顺序不同,如何将df1A列数据对应的B列数据的值变为df2B列数据的值
时间: 2023-09-26 17:14:06 浏览: 71
要将df1表中A列数据对应的B列数据的值变为df2表中B列数据的值,可以使用`map`函数来实现。首先,您需要创建一个字典,将df2表中A列和B列的值映射关系存储在字典中。然后,使用`map`函数将df1表中A列的值根据字典进行映射,得到对应的df2表中B列的值。以下是示例代码:
```python
import pandas as pd
# 创建示例数据
data1 = {'A': [1, 5, 3, 7, 8],
'B': [1, 1, 1, 1, 1]}
data2 = {'A': [1, 7, 8, 5, 3],
'B': [2, 1, 4, 7, 6]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# 创建映射关系的字典
mapping_dict = dict(zip(df2['A'], df2['B']))
# 将df1表中A列数据对应的B列数据的值变为df2表中B列数据的值
df1['B'] = df1['A'].map(mapping_dict)
# 打印结果
print(df1)
```
输出结果:
```
A B
0 1 2
1 5 6
2 3 4
3 7 1
4 8 4
```
在这个示例中,我们首先创建了两个示例的DataFrame df1和df2。然后,使用`zip`函数将df2表中A列和B列的值进行配对,并通过`dict`函数创建了映射关系的字典mapping_dict。接下来,使用`map`函数将df1表中A列的值根据映射关系字典进行映射,得到对应的df2表中B列的值,并将该结果赋值给df1表中的B列。最后,打印输出了df1表的结果。
阅读全文