For 循环 Return 全部
For Loop Return All
我有一个 Pandas 数据框,每行有 json 个字符串。我想 运行 一个 for 循环到 json_normalize 每一行并将数据带回另一个数据框,这样我就可以访问某些 key_value 对。
我的函数如下所示:
for line in df:
json_normalize(line)
这会打印出我想要的数据,但我想将其放入一个对象中,以便我可以将其作为数据框读取并对其执行操作。
数据是这样的:
3 [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
5 [{u'from': {u'name': u'Elle Oh', u'id': u'1020...
6 [{u'from': {u'name': u'Chris Magorian', u'id':...
7 [{u'from': {u'name': u'Jimmy George', u'id': u...
8 [{u'from': {u'name': u'A'raelle Flynn-Bolden',...
12 [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
13 [{u'from': {u'name': u'A'raelle Flynn-Bolden',...
16 [{u'from': {u'name': u'Matthew Emery', u'id': ...
17 [{u'from': {u'name': u'Elle Oh', u'id': u'1020...
18 [{u'from': {u'name': u'Gyasi Silas', u'id': u'...
19 [{u'from': {u'name': u'Alice Magorian', u'id':...
23 [{u'from': {u'name': u'Jonathan Jayasinghe', u...
24 [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
您可以在 json-text 列上使用 map
方法来应用 lambda
函数,该函数将使用 json.loads
解析 json 然后return你想要的字段。
import json
name = df.json_text.map(lambda s: json.loads(s)['from']['name'])
id = df.json_text.map(lambda s: json.loads(s)['from']['id'])
flattened = pd.DataFrame({'name':name, 'id',id})
或者,如果您想一次引入所有 "from" 字段(如果该字段中没有进一步嵌套),您可以简单地调用
flattened = pd.DataFrame(name = df.json_text.map(lambda s: json.loads(s)['from']['name'])
我有一个 Pandas 数据框,每行有 json 个字符串。我想 运行 一个 for 循环到 json_normalize 每一行并将数据带回另一个数据框,这样我就可以访问某些 key_value 对。
我的函数如下所示:
for line in df:
json_normalize(line)
这会打印出我想要的数据,但我想将其放入一个对象中,以便我可以将其作为数据框读取并对其执行操作。 数据是这样的:
3 [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
5 [{u'from': {u'name': u'Elle Oh', u'id': u'1020...
6 [{u'from': {u'name': u'Chris Magorian', u'id':...
7 [{u'from': {u'name': u'Jimmy George', u'id': u...
8 [{u'from': {u'name': u'A'raelle Flynn-Bolden',...
12 [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
13 [{u'from': {u'name': u'A'raelle Flynn-Bolden',...
16 [{u'from': {u'name': u'Matthew Emery', u'id': ...
17 [{u'from': {u'name': u'Elle Oh', u'id': u'1020...
18 [{u'from': {u'name': u'Gyasi Silas', u'id': u'...
19 [{u'from': {u'name': u'Alice Magorian', u'id':...
23 [{u'from': {u'name': u'Jonathan Jayasinghe', u...
24 [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
您可以在 json-text 列上使用 map
方法来应用 lambda
函数,该函数将使用 json.loads
解析 json 然后return你想要的字段。
import json
name = df.json_text.map(lambda s: json.loads(s)['from']['name'])
id = df.json_text.map(lambda s: json.loads(s)['from']['id'])
flattened = pd.DataFrame({'name':name, 'id',id})
或者,如果您想一次引入所有 "from" 字段(如果该字段中没有进一步嵌套),您可以简单地调用
flattened = pd.DataFrame(name = df.json_text.map(lambda s: json.loads(s)['from']['name'])