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