【问题标题】:Dataframe with arrays and key-pairs带有数组和密钥对的数据框
【发布时间】:2020-05-13 18:21:12
【问题描述】:

我有一个 JSON 结构,需要将其转换为数据框。我已经通过 pandas 库进行了转换,但我在两列中遇到问题,其中一列是数组,另一列是键对值。

         Pito                                   Value
{"pito-key": "Number"}             [{"WRITESTAMP": "2018-06-28T16:30:36Z", "S":"41bbc22","VALUE":"2"}]

如何将列拆分为数据框。

【问题讨论】:

  • 请提供来自json 文件的样本以及该样本所需的输出。还提供您如何阅读 json。

标签: python arrays json pandas dataframe


【解决方案1】:

据我了解您的问题,您可以应用正则表达式来做到这一点。

import pandas as pd
import re

data = {'pito':['{"pito-key": "Number"}'], 'value':['[{"WRITESTAMP": "2018-06-28T16:30:36Z", "S":"41bbc22","VALUE":"2"}]']}
df = pd.DataFrame(data)

def get_value(s):
    s = s[1]
    v = re.findall(r'VALUE\":\".*\"', s)
    return int(v[0][8:-1])

def get_pito(s):
    s = s[0]
    v = re.findall(r'key\": \".*\"', s)
    return v[0][7:-1]

df['value'] = df.apply(get_value, axis=1)
df['pito'] = df.apply(get_pito, axis=1)
df.head()

在这里,我创建了 2 个函数,将您的可怕字符串转换为您希望它们具有的值

如果这不是你的意思,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多