标签:python dataframe pandas list
忍受我,因为我是python的新手.我正在迭代数据并获得我需要组合成一个pandas数据帧的多个列表.
然后我需要添加标题,以便我可以执行计算.
问题是每个项目都被视为一个单独的实体.请帮忙
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)
这是输出:
['mike' , 1, 4, 20000]
['mary', 2, 5, 30000]
['jane', 3, 6, 40000]
这是所需的输出作为数据框,标题为“name”,“id_a”,“id_b”和“income”:
name id_a id_b income
mike 1 4 20000
mary 2 5 30000
jane 3 6 40000
解决方法:
您可以在循环外创建变量person_info并在每次迭代中追加元组:
person_info = list()
for r in rows:
person_info.append((r['metadata']['name'], r['metadata']['CountryId'], r['metadata']['StateId'], r['metadata']['Income']))
列表理解的解决方案:
person_info = [(r['metadata']['name'], r['metadata']['CountryId'], r['metadata']['StateId'], r['metadata']['Income']) for r in rows]
df = pd.DataFrame(person_info, columns=["name", "id_a", "id_b", "income"])
如果输入是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')
标签:python,dataframe,pandas,list 来源: https://codeday.me/bug/20190710/1425420.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。