Python 如何使用Pandas从json格式获取数据?
我得到的json数据如下:Python 如何使用Pandas从json格式获取数据?,python,json,pandas,Python,Json,Pandas,我得到的json数据如下: "data": [ { "currency": "CNY", "standardDate": "2021-03-31T00:00:00+08:00", "reportDate": "2021-04-26T00:00:00+08:00",
"data": [
{
"currency": "CNY",
"standardDate": "2021-03-31T00:00:00+08:00",
"reportDate": "2021-04-26T00:00:00+08:00",
"reportType": "first_quarterly_report",
"q": {
"ps": {
"np": {
"t": 773183901
}
}
},
"date": "2021-03-31T00:00:00+08:00",
"stockCode": "300413"
}
],
"data":["Like Above"] many times
当我使用pd.DataFrame获取df
时,列'q'
值显示如下:
q
{'ps': {'np': {'t': 773183901}}}
{'ps': {'np': {'t': 773183901}}}
{'ps': {'np': {'t': 773183901}}}
{'ps': {'np': {'t': 773183901}}}
我怎样才能巧妙地在'q'
列中获得数字
q
773183901
773183901
773183901
773183901
最好的方法是获得所需的列
df1 = pd.json_normalize(data, record_path=['q','ps','np'], \
meta=['currency','standardDate','reportDate','<All required fields>'])
df1=pd.json\u规范化(数据、记录路径=['q'、'ps'、'np']\
meta=[“货币”、“标准日期”、“报告日期”、“日期])
最好的方法是获取所需的列
df1 = pd.json_normalize(data, record_path=['q','ps','np'], \
meta=['currency','standardDate','reportDate','<All required fields>'])
df1=pd.json\u规范化(数据、记录路径=['q'、'ps'、'np']\
meta=[“货币”、“标准日期”、“报告日期”、“日期])
通过名称访问JSON/dict值的更直接的方法是使用.str[]
访问器。如下所示,使用列q
访问嵌套JSON深层的t
值:
df['q'] = df['q'].str['ps'].str['np'].str['t']
演示
按名称访问JSON/dict值的更直接的方法是使用
.str[]
访问器。如下所示,使用列q
访问嵌套JSON深层的t
值:
df['q'] = df['q'].str['ps'].str['np'].str['t']
演示
也许
df['q']=df['q'].应用(lambda d:d['ps']['np']['t'])
?是的!它起作用了。非常感谢你。顺便问一下,为什么用“d”而不是“x”?在哪里可以找到一些东西来研究函数apply?在这种情况下,不需要将.apply()与lambda函数一起使用,只需使用.str[]
。请参阅下面的详细信息。使用“d”
而不是“x”
没有特殊原因,如果您愿意,可以使用“x”
。研究.apply()
方法有很多参考资料,但是如果您可以使用其他内置函数,我建议您不要使用.apply()
.apply()
与其他内置panda/numpy函数一样,lambda函数没有矢量化,也没有针对性能进行优化。因此,它通常是缓慢的。有关详细信息,请参见。可能df['q']=df['q'].apply(lambda d:d['ps']['np']['t'])
?是!它起作用了。非常感谢你。顺便问一下,为什么用“d”而不是“x”?在哪里可以找到一些东西来研究函数apply?在这种情况下,不需要将.apply()与lambda函数一起使用,只需使用.str[]
。请参阅下面的详细信息。使用“d”
而不是“x”
没有特殊原因,如果您愿意,可以使用“x”
。研究.apply()
方法有很多参考资料,但是如果您可以使用其他内置函数,我建议您不要使用.apply()
.apply()
与其他内置panda/numpy函数一样,lambda函数没有矢量化,也没有针对性能进行优化。因此,它通常是缓慢的。详情请参见。酷,非常感谢。酷,非常感谢。