确实需要帮助,因为教程似乎没有解决这个问题。我花了一整天的时间在这件事上,找不到解决办法
我下载了API数据,并将其从json转换为python字典格式。然而,字典非常复杂,它有一个字典的字典
下面是这条格言的开头:
df[1]
Out[47]:
flight_date 2020-07-07
flight_status scheduled
departure {'airport': 'Findel', 'timezone': 'Europe/Luxe...
arrival {'airport': 'Francisco Sá Carneiro', 'timezone...
airline {'name': 'TAP Air Portugal', 'iata': 'TP', 'ic...
flight {'number': '6794', 'iata': 'TP6794', 'icao': '...
aircraft None
live None
Name: 1, dtype: object
在出发和到达的行中有不同机场的国际航空运输协会代码(例如:“国际航空运输协会”:“卢森堡”)。见下面的例子
离别用语:
{'airport': 'Findel', 'timezone': 'Europe/Luxembourg', 'iata': 'LUX', 'icao': 'ELLX', 'terminal': None, 'gate': None, 'delay': None, 'scheduled': '2020-07-07T06:30:00+00:00', 'estimated': '2020-07-07T06:30:00+00:00', 'actual': None, 'estimated_runway': None, 'actual_runway': None}
我试图将这些复杂的字典简化为一个简单的表,由给定日期的出发iata代码列和相应的到达iata代码列组成
如果您对如何解决这个问题有任何想法,或者知道好的文档,请将其发送给他人
非常感谢
对于字典中的单个值,可以使用
对于少数值,您可以使用类似于
Series
对于所有值,可以使用
... = df['departure'].apply(pd.Series)
,但需要手动写入所有列的名称使用
assign
可以使它更简单,但它不会将前缀departure_
添加到新列中-如果您想对具有相同名称的arrival
执行相同操作,则可能会出现问题但是您可以在
Series
中设置前缀编辑:用^{稍微简单一点
或
最小工作代码
顺便说一句:您也可以使用
concat()
来代替assign()
您甚至可以删除列
'departure'
编辑:
将行转换为列
在这个示例中,我必须使用
apply(eval)
,因为我将字典作为字符串,并且必须转换为Python字典相关问题 更多 >
编程相关推荐