首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当值完全匹配时,熊猫合并不起作用。

当值完全匹配时,熊猫合并不起作用。
EN

Stack Overflow用户
提问于 2022-04-01 20:10:17
回答 1查看 1.1K关注 0票数 0

下面是我的代码和Dataframes。stats_df要大得多。不确定是否重要,但列值与实际文件中的值完全相同。即使两个DFs的PlayerID值都相同,都是'20000852‘,但我不能在不丢失'Alex’的情况下合并这两个DFs。

代码语言:javascript
运行
复制
stats_df = pd.read_csv('stats_todate.csv')
matchup_df = pd.read_csv('matchup.csv')

new_df = pd.merge(stats_df, matchup_df[['PlayerID','Matchup','Started','GameStatus']])

我也尝试过:

代码语言:javascript
运行
复制
stats_df['PlayerID'] = stats_df['PlayerID'].astype(str)
matchup_df['PlayerID'] = matchup_df['PlayerID'].astype(str)
stats_df['PlayerID'] = stats_df['PlayerID'].str.strip()
matchup_df['PlayerID'] = matchup_df['PlayerID'].str.strip()

有什么想法吗?

这是我的两个数据:

DF1:

代码语言:javascript
运行
复制
PlayerID    SeasonType  Season  Name    Team    Position
20001713    1   2018    A.J. Hammons    MIA C
20002725    2   2022    A.J. Lawson ATL SG
20002038    2   2021    Élie Okobo BKN PG
20002742    2   2022    Aamir Simms NY  PF
20000518    3   2018    Aaron Brooks    MIN PG
20000681    1   2022    Aaron Gordon    DEN PF
20001395    1   2018    Aaron Harrison  DAL SG
20002680    1   2022    Aaron Henry PHI SF
20002005    1   2022    Aaron Holiday   PHO PG
20001981    3   2018    Aaron Jackson   HOU PF
20002539    1   2022    Aaron Nesmith   BOS SF
20002714    1   2022    Aaron Wiggins   OKC SG
20001721    1   2022    Abdel Nader PHO SF
20002251    2   2020    Abdul Gaddy OKC PG
20002458    1   2021    Adam Mokoka CHI SG
20002619    1   2022    Ade Murkey  SAC PF
20002311    1   2022    Admiral Schofield   ORL PF
20000783    1   2018    Adreian Payne   ORL PF
20002510    1   2022    Ahmad Caver IND PG
20002498    2   2020    Ahmed Hill  CHA PG
20000603    1   2022    Al Horford  BOS PF
20000750    3   2018    Al Jefferson    IND C
20001645    1   2019    Alan Williams   BKN PF
20000837    1   2022    Alec Burks  NY  SG
20001882    1   2018    Alec Peters PHO PF
20002850    1   2022    Aleem Ford  ORL SF
20002542    1   2022    Aleksej Pokuševski OKC PF
20002301    3   2021    Alen Smailagic  GS  PF
20001763    1   2019    Alex Abrines    OKC SG
20001801    1   2022    Alex Caruso CHI SG
20000852    1   2022    Alex Len    SAC C

DF2:

代码语言:javascript
运行
复制
PlayerID    Name    Date    Started Opponent    GameStatus  Matchup
20000681    Aaron Gordon    4/1/2022    1   MIN     16
20002005    Aaron Holiday   4/1/2022    0   MEM     21
20002539    Aaron Nesmith   4/1/2022    0   IND     13
20002714    Aaron Wiggins   4/1/2022    1   DET     14
20002311    Admiral Schofield   4/1/2022    0   TOR     10
20000603    Al Horford  4/1/2022    1   IND     13
20002542    Aleksej Pokuševski 4/1/2022    1   DET     14
20000852    Alex Len    4/1/2022    1   HOU     22
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-01 20:33:29

您需要使用on关键字参数指定要合并的列:

代码语言:javascript
运行
复制
new_df = pd.merge(stats_df, matchup_df[['PlayerID','Matchup','Started','GameStatus']], on=['PayerID'])

否则,它将使用所有共享列进行合并。

以下是熊猫文档中的解释:

on:要加入的标签或列表列或索引级别名称。这些都必须在两个DataFrames中找到。如果on为None,且没有在索引上合并,则默认为两个DataFrames.

中列的交集。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71712312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档