nia*_*ife 5 python list dataframe pandas
请耐心等待,因为我是python新手。我正在遍历数据并获得多个列表,这些列表需要组合成一个熊猫数据框。
然后,我需要添加标题,以便执行计算。
问题在于每个项目都被视为一个单独的实体。请帮忙
for r in rows:
person_info = list()
person_info.append(r['metadata']['name'])
person_info.append(r['metadata']['CountryId'])
person_info.append(r['metadata']['StateId'])
person_info.append(r['metadata']['Income'])
print(person_info)
Run Code Online (Sandbox Code Playgroud)
这是输出:
['mike' , 1, 4, 20000]
['mary', 2, 5, 30000]
['jane', 3, 6, 40000]
Run Code Online (Sandbox Code Playgroud)
这是带有标题“ name”,“ id_a”,“ id_b”和“ income”的数据帧的所需输出:
name id_a id_b income
mike 1 4 20000
mary 2 5 30000
jane 3 6 40000
Run Code Online (Sandbox Code Playgroud)
person_info您可以在循环外部创建变量并tuple在每次迭代中附加 s:
person_info = list()
for r in rows:
person_info.append((r['metadata']['name'], r['metadata']['CountryId'], r['metadata']['StateId'], r['metadata']['Income']))
Run Code Online (Sandbox Code Playgroud)
解决方案list comprehension:
person_info = [(r['metadata']['name'], r['metadata']['CountryId'], r['metadata']['StateId'], r['metadata']['Income']) for r in rows]
Run Code Online (Sandbox Code Playgroud)
df = pd.DataFrame(person_info, columns=["name", "id_a", "id_b", "income"])
Run Code Online (Sandbox Code Playgroud)
如果输入是另一种可能的解决方案json是使用json_normalize:
import json
from pandas.io.json import json_normalize
with open('myJson.json') as data_file:
data = json.load(data_file)
df = json_normalize(data, 'metadata')
Run Code Online (Sandbox Code Playgroud)