如何使用pandas.dataframe()函数转换python的嵌套dict
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用pandas.dataframe()函数转换python的嵌套dict相关的知识,希望对你有一定的参考价值。
我无法按照我的意愿转换输出:
x = {
"urlCrawlErrorSample": [
{
"urlDetails": {
"containingSitemaps": ['asff','123'],
"linkedFromUrls": ['xcvxcvad','89767']
},
"first_detected": "A String",
"pageUrl": "A String",
"responseCode": 42,
"last_crawled": "A String"
}
]
}
我申请的内容:
df =
pandas.DataFrame.from_dict(json_normalize(x['urlCrawlErrorSample']), orient='columns')
我得到了什么,输出:
df
first_detected last_crawled pageUrl responseCode urlDetails.containingSitemaps urlDetails.linkedFromUrls
0 A String A String A String 42 [asff, 123] [xcvxcvad, 89767]
期望的输出:
df
first_detected last_crawled pageUrl responseCode urlDetails.containingSitemaps urlDetails.linkedFromUrls
0 A String A String A String 42 asff xcvxcvad
1 A String A String A String 42 123 89767
答案
解决这个问题的一种方法
x = {
"urlCrawlErrorSample": [
{
"urlDetails": {
"containingSitemaps": ['asff','123'],
"linkedFromUrls": ['xcvxcvad','89767']
},
"first_detected": "A String",
"pageUrl": "A String",
"responseCode": 42,
"last_crawled": "A String"
}
]
}
a = pd.DataFrame(x['urlCrawlErrorSample']*2)
b = pd.DataFrame(x['urlCrawlErrorSample'][0]['urlDetails'])
print( pd.concat([a,b], axis=1).drop('urlDetails', axis=1) )
产量
first_detected last_crawled pageUrl responseCode containingSitemaps
0 A String A String A String 42 asff
1 A String A String A String 42 123
linkedFromUrls
0 xcvxcvad
1 89767
以上是关于如何使用pandas.dataframe()函数转换python的嵌套dict的主要内容,如果未能解决你的问题,请参考以下文章
如何使用累积和在 Pandas Dataframe 中执行窗口函数操作?
使用 .loc 函数错误的 Pandas DataFrame 时间索引
#pandas使用merge函数将两个pandas dataframe通过笛卡尔积(cartesian product)方式连接起来生成新的dataframe数据