在每个循环中添加任意数量的列

时间:2018-11-07 13:24:05

标签: python pandas dictionary

示例:

dict1 = ({'ROADS' : ['STREETNAME', 'LEFTFROM', 'LEFTTO', 'RIGHTFROM', 'RIGHTTO'],
            'ITA' :  ['I.ID_BOUND', 'I.BOUND_IDQ']}) 

注意

ROADS,ITA是文件 其余的是他们的专栏。

我想对每个文件中的所有列进行类似concat的添加。 问题在于每个文件都有不同的列数。

如何做到这一点?

更新

说明:

如何使它添加字典中可能存在的任意数量的列? 下面的示例尝试将每列显式引用为v [0]等 我想要的是不管列数如何都这样做,以便与数量无关。

我尝试过:

for k,v in dict1.items():
    newfield = v[0] + v[1]

2 个答案:

答案 0 :(得分:0)

也许可行:

newfields = {}

for k,v in dict1.items():
    newfields[k] = ''.join(v)

答案 1 :(得分:0)

使用字典理解更简单:

new_dict = {key: ','.join(value) for key, value in dict1.items()}

导致: {'ROADS': 'STREETNAME,LEFTFROM,LEFTTO,RIGHTFROM,RIGHTTO', 'ITA': 'I.ID_BOUND,I.BOUND_IDQ'}

或者您可以替换,中的','.join以使用您喜欢的分隔符

根据说明进行更新:

list_fields = [''.join(value) for key, value in dict1.items()]

结果:['STREETNAMELEFTFROMLEFTTORIGHTFROMRIGHTTO', 'I.ID_BOUNDI.BOUND_IDQ']

仍然不确定您要达到的目标。

列表和字典理解传统上比for循环快