如何根据与pandas匹配的列值将数据从一个数据帧移动到另一个数据帧?

2024-05-16 06:11:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个pandas数据帧,其中包含不同顺序的数据,我正在尝试根据内容将数据从一个移动到另一个。我试过一个lambda函数,但我不明白它是如何工作的。以下是我的数据的简化版本:

df1 = 
   Name  Pos  Opponent  DPAvPos
1  Dave  QB   DEN       NaN
2  Bill  QB   GB        NaN
3  Sean  QB   DET       NaN

df2 =
   Name  DKP/Game
1  DET   20.1
2  DEN   10.4
3  GB    15.2

我想将df2的DKP/Game列中的数据移动到DPAvPos列df1,方法是将df1的Opponent列与df2的Name列进行匹配。到目前为止,我所做的一切都没有奏效。在


Tags: 数据namegamepandas顺序nandf1df2
1条回答
网友
1楼 · 发布于 2024-05-16 06:11:21

您可以尝试合并这两个数据帧,然后删除DPAvPos并将DKP/Game重命名为DPAvPos:

import pandas as pd

df1 = pd.DataFrame({
    "Name" : ["Dave", "Bill", "Sean"],
    "Pos" : ['QB', 'QB', 'QB'],
    "Opponent" : ["DEN", "GB", "DET"],
    "DPAvPos": ["NaN", "NaN", "NaN"]
})

df2 = pd.DataFrame({
    "Name" : ["DET", "DEN", "GB"],
    "DKP/Game" : [ 20.1, 23, 21]
})

df2.rename(columns={"Name" : "Opponent"}, inplace=True)
df3 = pd.merge(df1, df2, on="Opponent")
df3.drop('DPAvPos', axis=1, inplace=True)
df3.rename(columns={"DKP/Game" : "DPAvPos"}, inplace=True)

相关问题 更多 >