全外连接 Python 两个表中的一些唯一列

问题描述

这是我的第一个问题,如果发布时看起来很糟糕,那么抱歉。 我正在尝试为许多玩家存储来自守望先锋的游戏数据(出于好奇,我想看看每个等级之间的统计数据的最大差异)。因为大多数人不会扮演每个角色,并不是每个潜在列中的每个值都被填满。我想我会使用外连接,但我收到一条错误消息,提示“计划形状未对齐”。我一直在寻找各种方法来进行像合并这样的外连接,这是我最近的尝试。但它们都会出错。有一次我没有收到错误,每一列都被复制(你会看到两个表都有“ana_Assists_Assists”)

"""
  Adds a players data to the massive table
"""
def addRowtoPandas(player,panda = None):
  heroStat = playerHeroData(player)
  header,data = toSingleRow(heroStat)
  header.append("player")
  data.append(player)
  if type(panda) == type(None):
    panda = pd.DataFrame([data],columns = header)
    panda = panda.set_index("player")
    panda = panda.sort_index(axis=1)
    return panda
  else:
    toAdd = pd.DataFrame([data],columns = header)
    toAdd = toAdd.set_index("player")
    toAdd = toAdd.sort_index(axis=1)
    print(toAdd)
  panda = pd.concat([panda,toAdd])
  return panda

def playersToRows(rankPanda,statPanda = None):
  players = list(rankPanda.index)
  for player in players:
    print(player)
    statPanda = addRowtoPandas(player,statPanda)
    print(statPanda)
  return statPanda

给出这个结果错误

Easternsun#115842104968904
                           ana_Assists_Assists  ... zenyatta_Match Awards_Silver Medals
player                                          ...                                    
Easternsun#115842104968904                 133  ...                                   6

[1 rows x 921 columns]
bame#17842025648829
                    ana_Assists_Assists  ... zenyatta_Miscellaneous_Transcendence Healing
player                                   ...                                             
bame#17842025648829                  94  ...                                       26,540

[1 rows x 1592 columns]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-9206fb4478f1> in <module>()
----> 1 lotsOstats = playersToRows(panda)
      2 lotsOstats

5 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/internals/concat.py in _combine_concat_plans(plans,concat_axis)
    559         while num_ended[0] != len(next_items):
    560             if num_ended[0] > 0:
--> 561                 raise ValueError("Plan shapes are not aligned")
    562 
    563             placements,units = zip(*next_items)

ValueError: Plan shapes are not aligned

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)