python 数据结构转换_DataFrame和python中数据结构互相转换

楔子

有时候DataFrame,我们不一定要保存成文件、或者入数据库,而是希望保存成其它的格式,比如字典、列表、json等等。当然,读取DataFrame也不一定非要从文件、或者数据库,根据现有的数据生成DataFrame也是可以的,那么该怎么做呢?我们来看一下

DataFrame转成python中的数据格式

转成json

DataFrame转成json,可以使用df.to_json()方法

import pandas as pd

df = pd.DataFrame({"name": ["mashiro", "satori", "koishi", "nagisa"],

"age": [17, 17, 16, 21]})

print(df.to_json())

# {"name":{"0":"mashiro","1":"satori","2":"koishi","3":"nagisa"},"age":{"0":17,"1":17,"2":16,"3":21}}

我们看到虽然转化成了json,但是有些不完美,那就是它把索引也算进去了

import pandas as pd

df = pd.DataFrame({"name": ["mashiro", "satori", "koishi", "nagisa"],

"age": [17, 17, 16, 21]})

# 如果不想加索引的话,那么指定index=False即可

try:

print(df.to_json(index=False))

except Exception as e:

print(e) # 'index=False' is only valid when 'orient' is 'split' or 'table'

# 但是它报错了,说如果index=False,那么orient必须指定我split或者table

我们看一下这个orient是什么

首先orient可以有如下取值:split、records、index、columns、values、table

我们分别演示一下,看看orient取不同的值,结果会有什么变化

orient='split'

import pandas as pd

df = pd.DataFrame({"name": ["mashiro", "satori", "koishi", "nagisa"],

"age": [17, 17, 16, 21]})

print(df.to_json(orient="split"))

"""

{

"columns":["name","age"],

"index":[0,1,2,3],

"data":[["mashiro",17],["satori",17],["koishi",16],["nagisa",21]]

}

"""

print(df.to_json(orient="split", index=False))

"""

{

"columns":["name","age"],

"data":[["mashiro",17],["satori",17],["koishi",16],["nagisa",21]]

}

"""

我们看到会变成三个键值对,分别是列名、索引、数据

orient='records'

impo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值