如果我有一个CSV文件,每行有一个字典值(列为[“位置”],[“MovieDate”],[“Formatted_Address”],[“Lat”], “Lng”]),如果我想按Location
进行分组,并且在共享相同Location
值的所有MovieDate
值上进行分组,则需要使用OrderDict。python排序字典问题
前的数据:
Location,MovieDate,Formatted_Address,Lat,Lng
"Edgebrook Park, Chicago ",Jun-7 A League of Their Own,"Edgebrook Park, 6525 North Hiawatha Avenue, Chicago, IL 60646, USA",41.9998876,-87.7627672
"Edgebrook Park, Chicago ","Jun-9 It's a Mad, Mad, Mad, Mad World","Edgebrook Park, 6525 North Hiawatha Avenue, Chicago, IL 60646, USA",41.9998876,-87.7627672
对于具有相同的位置(^如本例)中的每一行,我想做出这样的输出,以便有没有重复的位置。
"Edgebrook Park, Chicago ","Jun-7 A League of Their Own Jun-9 It's a Mad, Mad, Mad, Mad World","Edgebrook Park, 6525 North Hiawatha Avenue, Chicago, IL 60646, USA",41.9998876,-87.7627672
我的代码使用ordereddict来做这件事有什么问题吗?
from collections import OrderedDict
od = OrderedDict()
import csv
with open("MovieDictFormatted.csv") as f,open("MoviesCombined.csv" ,"w") as out:
r = csv.reader(f)
wr = csv.writer(out)
header = next(r)
for row in r:
loc,rest = row[0], row[1]
od.setdefault(loc, []).append(rest)
wr.writerow(header)
for loc,vals in od.items():
wr.writerow([loc]+vals)
我最终得到的是这样的:
['Edgebrook Park, Chicago ', 'Jun-7 A League of Their Own']
['Gage Park, Chicago ', "Jun-9 It's a Mad, Mad, Mad, Mad World"]
['Jefferson Memorial Park, Chicago ', 'Jun-12 Monsters University ', 'Jul-11 Frozen ', 'Aug-8 The Blues Brothers ']
['Commercial Club Playground, Chicago ', 'Jun-12 Despicable Me 2']
的问题是,我没有得到其他列在这种情况下展现出来,我会怎么做才好?我也宁愿让MovieDate值只是一个长字符串,如下:的 'Jun-12 Monsters University Jul-11 Frozen Aug-8 The Blues Brothers '
代替:
'Jun-12 Monsters University ', 'Jul-11 Frozen ', 'Aug-8 The Blues Brothers '
感谢球员,欣赏它。我是一个python noob。
更改row[0], row[1]
到row[0], row[1:]
遗憾的是不给我我想要的。我只希望被添加在第二列(MovieDate)的值,而不是复制所有其他列,例如:
['Jefferson Memorial Park, Chicago ', ['Jun-12 Monsters University ', 'Jefferson Memorial Park, 4822 North Long Avenue, Chicago, IL 60630, USA', '41.76083920000001', '-87.6294353'], ['Jul-11 Frozen ', 'Jefferson Memorial Park, 4822 North Long Avenue, Chicago, IL 60630, USA', '41.76083920000001', '-87.6294353'], ['Aug-8 The Blues Brothers ', 'Jefferson Memorial Park, 4822 North Long Avenue, Chicago, IL 60630, USA', '41.76083920000001', '-87.6294353']]
具体什么不顺心的整个休息吗?你输错了吗?你有错误信息吗?我们需要更多细节。 – user2357112
hey @ user2357112,我更新了它 - 对不完整的问题抱歉。 – SpicyClubSauce
“休息”应该是整个行的其余部分?因为'row [1]'就是第二列中的东西。 – user2357112