在columnnam中合并具有部分匹配的框架列

2024-09-27 00:14:17 发布

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

我有一个数据帧,其中一个excelfile是源文件。excel文件中充满了google表单的答案

我目前拥有的列有:

Index(['Keeper', 'Linksback', 'linker centrale verdediger',
   'centrale verdediger', 'rechter centrale verdediger', 'rechtsback',
   'linker middenvelder', 'centrale middenvelder', 'rechter middenvelder',
   'linker aanvaller', 'rechter aanvaller', 'Keeper.1', 'Linksback.1',
   'linker centrale verdediger.1', 'rechter centrale verdediger.1',
   'rechtsback.1', 'linker middenvelder.1', 'linker centrale middenvelder',
   'rechter centrale middenvelder', 'rechter middenvelder.1',
   'linker aanvaller.1', 'rechter aanvaller.1', 'Keeper.2', 'Linksback.2'
   ])

与足球队的某个战术相同的位置名称。有很多重叠的位置(例如,Keeper,Keeper.1,Keeper.2,…)

我想创建一个新的数据帧,其中相同位置的所有值都在同一列中。我希望这是一个以动态方式构建的框架,因为将来可以在表单中添加更多的策略,以便在我的源文件中显示更多部分编号的列

我认为最简单的方法是制作每个位置的字典,然后我可以使用它将我想要的列组添加到新的dataframe中

positiondict = {'Keeper':('Keeper','Keeper.1','Keeper.2'), 'Linksback':('Linksback', 'Linksback.1','Linksback.2')}

我现在正琢磨着如何把这本词典写得像样些。键必须是没有数字的任何位置,必须添加带有数字的相同位置名称作为该键的值


Tags: 数据名称表单数字keeperexcel源文件linker
1条回答
网友
1楼 · 发布于 2024-09-27 00:14:17
d = dict()
for pos in sorted(a):
    if not d.get(pos.split('.')[0]):
        d[pos.split('.')[0]] = [pos.split('.')[0]]
    else:
        d[pos.split('.')[0]].append(pos)

# d
# Out[13]: 
# {'Keeper': ['Keeper', 'Keeper.1', 'Keeper.2'],
#  'Linksback': ['Linksback', 'Linksback.1', 'Linksback.2'],
#  'centrale middenvelder': ['centrale middenvelder'],
#  'centrale verdediger': ['centrale verdediger'],
#  'linker aanvaller': ['linker aanvaller', 'linker aanvaller.1'],
#  'linker centrale middenvelder': ['linker centrale middenvelder'],
#  'linker centrale verdediger': ['linker centrale verdediger',
#   'linker centrale verdediger.1'],
#  'linker middenvelder': ['linker middenvelder', 'linker middenvelder.1'],
#  'rechter aanvaller': ['rechter aanvaller', 'rechter aanvaller.1'],
#  'rechter centrale middenvelder': ['rechter centrale middenvelder'],
#  'rechter centrale verdediger': ['rechter centrale verdediger',
#   'rechter centrale verdediger.1'],
#  'rechter middenvelder': ['rechter middenvelder', 'rechter middenvelder.1'],
#  'rechtsback': ['rechtsback', 'rechtsback.1']}

相关问题 更多 >

    热门问题