【问题标题】:Pandas JSON data parsing projectionPandas JSON 数据解析投影
【发布时间】:2017-12-24 18:44:59
【问题描述】:

在我看来,pandas 在数据解析期间支持投影(省略或选择列)的想法将非常有用。

我发现许多 JSON 数据集有大量我不需要的无关字段,或者我需要解析嵌套结构中的特定字段。

我目前所做的是通过jq 创建一个仅包含我需要的字段的文件。这成为“清理过的”文件。

我更喜欢这样一种方法,每次我想查看一个特定的构面或一组构面时,我都不必创建一个新的清理文件,但我可以告诉 pandas 加载 JSON 路径 .data.interesting 和仅限项目字段:A B C

举个例子:

{
 "data": {
   "not interesting": ["milk", "yogurt", "dirt"],
   "interesting": [{ "A": "moonlanding", "B": "1956", "C": 100000, "D": "meh" }]
}

【问题讨论】:

    标签: python json pandas


    【解决方案1】:

    不幸的是,似乎没有简单的方法可以在加载时执行此操作,但如果您可以在加载后立即执行此操作...

    # drop by index
    df.drop(df.columns[[1, 2]], axis=1, inplace=True)
    
    # drop by name
    df.drop(['B', 'C'], axis=1, inplace=True)
    

    【讨论】:

    • 唉,这也是我得出的结论。
    • 不省略这些列是否会对性能造成很大影响?
    • 其实等等,usecols能解决你的问题吗? pandas.pydata.org/pandas-docs/stable/generated/…
    • “使用此参数会导致更快的解析时间和更低的内存使用量。”如果它是您想要的性能优势,那将给您。 @Breedly
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 2020-01-24
    • 1970-01-01
    • 2020-03-24
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多