我正在尝试将元组列表列表转换为 pandas 数据框,但不知道如何执行此操作。我的地址结构如下:
addresses = [
[('the vicars inn', 'house'), ('68', 'house_number'), ('church lane', 'road'), ('arlesey', 'city'), ('beds', 'house')],
[('the old oak', 'house'), ('85', 'house_number'), ('church lane', 'road'), ('arlesey', 'city'), ('beds', 'house')],
[('adj', 'road'), ('85', 'house_number'), ('high street', 'road'), ('arlesey', 'city'), ('beds', 'house')],
[('arlesey community centre', 'house'), ('high street', 'road'), ('arlesey', 'city'), ('beds', 'house')],
[('arlesey community centre', 'house'), ('high street', 'road'), ('arlesey', 'city'), ('beds', 'house')]
]
Run Code Online (Sandbox Code Playgroud)
理想情况下,我需要返回一个数据框,例如:
city house house_number road
0 arlesey the vicars inn 68 church lane
1 arlesey the old oak 85 church lane
Run Code Online (Sandbox Code Playgroud)
到目前为止我所尝试的是旋转表格,但它没有产生预期的结果:
pd.DataFrame.from_records(addresses[0]).pivot(columns=1, values=0)
Run Code Online (Sandbox Code Playgroud)
有谁对我应该寻找实现理想数据框的方法有任何指导吗?
山姆
您可以将每条记录转换为字典,然后使用DataFrame.from_records:
pd.DataFrame.from_records([{k: v for v, k in row} for row in addresses])
# city house house_number road
#0 arlesey beds 68 church lane
#1 arlesey beds 85 church lane
#2 arlesey beds 85 high street
#3 arlesey beds NaN high street
#4 arlesey beds NaN high street
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |