【问题标题】:Pandas dataframe map to a new list of objects [duplicate]熊猫数据框映射到新的对象列表[重复]
【发布时间】:2022-01-06 16:18:10
【问题描述】:

我是 python 新手,所以每个提示都会有所帮助:)

我有一个包含多列的 pandas 数据框,我需要将其转换为新的对象列表。在所有数据框列中,我有两个(纬度,经度)我想要在我的新对象中作为属性。

index city lat lon
0 London 42.33 55.44
1 Rome 92.44 88.11

我的新对象列表需要如下所示:

[
  {'lat': 42.33, 'lon': 55.44}, 
  {'lat': 92.44, 'lon': 88.11}
] 

更具体地说,我需要使用 ML Studio 进行机器学习。

谢谢!

【问题讨论】:

    标签: python pandas dataframe dictionary


    【解决方案1】:

    使用 Pandas.DataFrame.to_dict(orient) 将 DataFrame 转换为字典。有多种字典方向;对于您的情况,请使用orient='records'

    您还想只选择lat & lon 列,如下所示:

    df[['lat','lon']].to_dict(orient='records')
    

    这将为您提供结果:

    [{'lat': 42.33, 'lon': 55.44}, {'lat': 92.44, 'lon': 88.11}] 
    

    您可以尝试以下一些其他方向:

    ‘dict’ (default) : dict like {column -> {index -> value}}
    
    ‘list’ : dict like {column -> [values]}
    
    ‘series’ : dict like {column -> Series(values)}
    
    ‘split’ : dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}
    
    ‘records’ : list like [{column -> value}, … , {column -> value}]
    
    ‘index’ : dict like {index -> {column -> value}}
    

    【讨论】:

    【解决方案2】:

    您可以选择您想要的列,然后使用to_dictorient='records' 来获得所需的结果

    df[["lat", "lon"]].to_dict(orient='records')

    【讨论】:

    猜你喜欢
    • 2021-11-19
    • 2020-10-04
    • 2019-07-12
    • 1970-01-01
    • 2018-10-10
    • 2022-11-15
    • 1970-01-01
    • 2018-12-14
    • 2018-07-23
    相关资源
    最近更新 更多