如何修改pandas代码将CSV数据转换为指定格式的字典?
解决方案
你可以先将starting_airport列设置为索引,筛选需要保留的字段后再调用to_dict方法,指定orient参数为index即可。
注意你读取数据时定义的时间列名为time,目标格式里对应键为average_time_taken,需要先做一次列重命名:
import pandas as pd # 原有读取逻辑不变 flightinfo = pd.read_csv('flightdata.csv',quotechar='"',names=['starting_airport', 'destination_airport', 'airline', 'time', 'start_state','end_state'], header=None) # 重命名时间列,筛选需要的字段后转字典 flightinfodict = ( flightinfo.rename(columns={'time': 'average_time_taken'}) .set_index('starting_airport') [['destination_airport', 'airline', 'average_time_taken']] .to_dict('index') )
如果你的数据存在同一出发机场对应多条航线的情况,上述方法会默认保留最后一条对应记录。如果你需要更灵活的自定义逻辑,也可以用字典推导式实现:
flightinfodict = { row['starting_airport']: { 'destination_airport': row['destination_airport'], 'airline': row['airline'], 'average_time_taken': row['time'] } for _, row in flightinfo.iterrows() }
两种方法输出的结果都和你需要的目标格式完全一致。
内容的提问来源于stack exchange,提问作者Obito8750
相关产品推荐
相关产品推荐

