【问题标题】:What is the best way to get differences from unique rows of two different dataframes?从两个不同数据帧的唯一行中获取差异的最佳方法是什么?
【发布时间】:2021-05-20 15:03:06
【问题描述】:

例如,我们有两个来自两周比赛的数据框:

第 1 周统计数据:

Rank Player Goals
1 Jeff 4
2 Jose 3
3 John 2
4 Joel 1

第 2 周统计数据:

Rank Player Goals
1 Jose 4
2 Joel 3
3 Jeff 2
4 John 1

我想创建第三个数据框,它返回特定于玩家的差异,例如 df_differences = Week1['Jose'].subtract(Week2['Jose']),但规模更大,有 500 多名玩家。

我想为每个玩家分配一个唯一的玩家 ID,然后该函数只需要查找玩家 ID 并返回各自的差异。但即使如此,我也不太确定那会是什么样子。谢谢大家!

df1

编辑:CSV sn-p

,Player,% Owned,+/-,GP,mask1,mask2
0,Player1,3%,0%,0,False,False
1,Player2,91%,0%,1,False,False
2,Player3,99%,0%,1,False,False
3,Player4,57%,-0.1%,1,False,False

df2

,Player,% Owned,+/-,GP,mask1,mask2
0,Player1,3%,0%,0,False,False
1,Player2,91%,0%,1,False,False
2,Player3,99%,0%,1,False,False
3,Player4,57%,-0.1%,1,False,False
4,Adam 0%,0%,0,False,False
5,Adam,20%,0%,1,False,False

【问题讨论】:

    标签: python pandas dataframe statistics


    【解决方案1】:

    尝试将播放器设置为索引:

    Week1.set_index('Player') - Week2.set_index('Player')
    

    或者:

    Week1.set_index('Player').sub(Week2.set_index('Player'))
    

    【讨论】:

    • 有了这个更改,我现在遇到了operand type(s) 错误。我之前做的是用Week1 = Week1.select_dtypes(['number']) 删除非整数,然后用.sub() 得到差异,然后然后我会.pop('Player').join('Player')。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多