【发布时间】:2019-08-28 14:07:07
【问题描述】:
我有一个数据格式的数据集,如下所示:
[{'session_id': ['X061RFWB06K9V'],
'unix_timestamp': [1442503708],
'cities': ['New York NY, Newark NJ'],
'user': [[{'user_id': 2024,
'joining_date': '2015-03-22',
'country': 'UK'}]]},
{'session_id': ['5AZ2X2A9BHH5U'],
'unix_timestamp': [1441353991],
'cities': ['New York NY, Jersey City NJ, Philadelphia PA'],
'user': [[{'user_id': 2853,
'joining_date': '2015-03-28',
'country': 'DE'}]]},
{'session_id': ['SHTB4IYAX4PX6'],
'unix_timestamp': [1440843490],
'cities': ['San Antonio TX'],
'user': [[{'user_id': 10958,
'joining_date': '2015-03-06',
'country': 'UK'}]]}
我正在使用 pandas 并对其进行处理,当我使用 read_json 时,我得到以下信息:
cities session_id unix_timestamp user
0 [New York NY, Newark NJ] [X061RFWB06K9V] [1442503708] [[{'user_id': 2024, 'joining_date': '2015-03-2...
1 [New York NY, Jersey City NJ, Philadelphia PA] [5AZ2X2A9BHH5U] [1441353991] [[{'user_id': 2853, 'joining_date': '2015-03-2...
2 [San Antonio TX] [SHTB4IYAX4PX6] [1440843490] [[{'user_id': 10958, 'joining_date': '2015-03-...
如何处理这些数据以使其格式更好? 这是数据定义:
列:
-
session_id:会话 ID。 -
unix_timestamp: 会话开始时间的 unix 时间戳 -
cities: 同一会话中搜索的唯一城市 -
user:-
user_id: 用户id -
joining_date: 用户创建账号时 -
country: 用户所在的地方
-
我尝试使用 json_normalize 但不断出错:
AttributeError: 'int' 对象没有属性 'values'
还有不同类型的错误。请帮忙
【问题讨论】:
-
我有点困惑。比什么好?当输入是分层/树形时,您想要行和列的问题吗?
-
这是我第一次使用 JSON。我习惯于使用格式整齐的数据框。我如何使用这些数据并进行分析。如何解析“用户”列并进行分析?
-
我真的不明白你所说的树形和矩形是什么意思。你能指点我这方面的一些资源吗?我将不胜感激
-
一般的答案是它取决于你需要把它的用途。您需要确定树形数据和矩形输出之间的映射(根据您整齐形状的数据框注释进行猜测)。在这种情况下,层次结构只有一层,所以你可以做一些简单的事情,比如编写一个简短的函数来将用户的属性与其他属性放在同一级别。然后你应该得到一个更整洁的数据框/矩形。
-
啊好的,明白了。谢谢
标签: python json pandas parsing