【Python】Pandas Dataframe转json
pandas是python里一个高效的数据处理库,在web开发中,有时候需要读取本地数据返回给前端,返回给前端的一般是json数据。pandas通过函数to_json()
直接json转化的能力。
下面是函数说明:
DataFrame.to_json(
path_or_buf=None,
orient=None,
date_format='epoch',
double_precision=10,
force_ascii=True,
date_unit='ms',
default_handler=None,
lines=False)
一共有8个参数,但8个参数都有默认值,所以并不需要强制提供。下面看一些实例:
首先一个DataFrame
import pandas
df = pandas.DataFrame({"A": [i*2 for i in range(10)], "B": [i*2+1 for i in range(10)]})
表头分别是A、B,内容分别是20以内的偶数和奇数,如下:
A B
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
5 10 11
6 12 13
7 14 15
8 16 17
9 18 19
转为json形式:
print(df.to_json())
结果为:
{"A":{"0":0,"1":2,"2":4,"3":6,"4":8,"5":10,"6":12,"7":14,"8":16,"9":18},"B":{"0":1,"1":3,"2":5,"3":7,"4":9,"5":11,"6":13,"7":15,"8":17,"9":19}}
默认情况下会用索引作为键值。
那如果不想要索引作为怎么办?比方说就为了节省带宽,不要键值,只要数据,这就要用到那些参数了。如下:
print(df.to_json(orient="values"))
将orient参数设置为values,输出结果为:
[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19]]
详细的API说明:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_json.html