尝试转换数据框中的项目。也许JSON

时间:2018-10-03 15:05:05

标签: python python-3.x pandas

我正在从数据库导入数据,我只需要一个字段。我可以很好地获得一个字段,但是像这样,该字段中的数据看起来确实很乱。

[
    {'id': 360014571631, 'default': False, 'name': '200 - OK', 'raw_name': '200 - OK', 'value': 'purpose_add/remove_user'},
    {'id': 360014571651, 'default': False, 'name': 'Change Permissions', 'raw_name': 'Change Permissions', 'value': 'purpose_change_permissions'}, 
    {'id': 360014571671, 'default': False, 'name': 'Failed Data Validation', 'raw_name': 'Failed Data Validation', 'value': 'purpose_failed_data_validation'},
    {'id': 360014571691, 'default': False, 'name': 'Grant Access', 'raw_name': 'Grant Access', 'value': 'purpose_grant_access'},
]

我想清理它并放入另一个数据框中。因此,我想删除单个撇号以及方括号和花括号(非常简单)。最后,我想根据逗号分割所有内容,并将名称分配到冒号左侧作为新的字段名称。所以,我想把它变成这种格式。

那是我不知道的。我不确定这是枢轴,移调还是融化。我不知道该怎么称呼。绝对是对数据集的某种转换。

id  default name    raw_name    value   etc., etc., etc.
360014571631        FALSE   200 - OK    200 - OK    purpose_add/remove_user   etc., etc., etc.

将数据导出到CSV时,会看到以下内容:

enter image description here

注意:一些记录如下:

                                       []

我尝试过:

df1[df1.custom_field_options.str.contains("[]") == False]

我收到此错误:

error: unterminated character set

如果我运行Ben的数据集,它实际上可以像我想要的那样工作。

1 个答案:

答案 0 :(得分:0)

我可能会丢失一些有关您要进行的转换的信息,但是如上所述,我认为您只是想从词典列表中创建数据框。

使用数据:

data = [{'id': 360014571631, 'default': False, 'name': '200 - OK', 'raw_name': '200 - OK', 'value': 'purpose_add/remove_user'}, {'id': 360014571651, 'default': False, 'name': 'Change Permissions', 'raw_name': 'Change Permissions', 'value': 'purpose_change_permissions'}, {'id': 360014571671, 'default': False, 'name': 'Failed Data Validation', 'raw_name': 'Failed Data Validation', 'value': 'purpose_failed_data_validation'}, {'id': 360014571691, 'default': False, 'name': 'Grant Access', 'raw_name': 'Grant Access', 'value': 'purpose_grant_access'}]

您可以使用以下方法将其转换为数据框:

df = pd.DataFrame().from_dict(data)

返回:

       default            id                    name                raw_name  value
0    False  360014571631                200 - OK                200 - OK   purpose_add/remove_user
1    False  360014571651      Change Permissions      Change Permissions   purpose_change_permissions
2    False  360014571671  Failed Data Validation  Failed Data Validation   purpose_failed_data_validation
3    False  360014571691            Grant Access            Grant Access   purpose_grant_access

如果您想将其导入JSON。

df.to_json()

,您可以在这里找到: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_json.html