DataFrame 数据框与Numpy ndarray 的转换

在处理的数据的时候,最常遇到的就是使用 Pandas 的 Dataframe 与 Numpy 的 ndarray。以下以 mtcars 为例,该数据集包含 32 笔汽车模型的数据, 这些数据取自1974年《汽车趋势》杂志,对于每辆汽车, 有 11 个特徵值,详细说明就省略,因为本篇文章主要是讨论如何在两种常见的对象之间转换。

取得三笔mtcars的数据,以字符串的方式存取。

strs = ['0,4.58257569495584,6,160.0,110,3.9,2.62,16.46,0,1,4,4,1,Mazda RX4,Mazda RX4',
    '1,4.58257569495584,6,160.0,110,3.9,2.875,17.02,0,1,4,4,1,Mazda RX4 Wag,Mazda RX4 Wag',
    '2,4.77493455452533,4,108.0,93,3.85,2.32,18.61,1,1,4,1,1,Datsun 710,Datsun 710']

将字符串转成列表,结果如下图。

arrs = []
[arrs.append(arr.split(',')) for arr in strs]

在这里插入图片描述
图一 字符串转换列表的结果

将列表转成Numpy ndarray,结果如下图。

import numpy as np
npMtcars = np.array(arrs)
npMtcars.shape

在这里插入图片描述
图二 列表转成Numpy ndarray的结果

将Numpy ndarray 转成 Pandas Dataframe 数据框,结果如下图。

import pandas as pd
df = pd.DataFrame(npMtcars)
df

在这里插入图片描述
图三 Numpy ndarray 转成 Pandas Dataframe 数据框的结果

在数据框的对象中,要转换成 Numpy ndarray 是很簡單的,只要存取 values 这个属性即可,结果如下图。

print(type(df.values))
df.values

在这里插入图片描述
图四 Pandas Dataframe 数据框得到 Numpy ndarray 对象

或是调用 to_numpy() 这个方法,结果如下图。
在这里插入图片描述
图五 Pandas Dataframe 数据框调用 to_numpy()

如果要转换成列表 list 就比较麻烦一点,不像 Series 对象有 to_list() 的方法,所以可以从 ndarray 对象转换成列表 list,结果如下图。

df2list = df.values.tolist()
df2list

在这里插入图片描述
图六 Pandas Dataframe 数据框转换成列表 list

建議不要用 list() 方法来转换,会达到预期外的结果,结果如下图。虽然得到的都是列表的结果,直接从数据框转换的结果会是字段数;而 values 属性则是只有第一层是列表,下一层还是 ndarray,

df2list1 = list(df)
print(type(df2list1))
print(df2list1)
df2list2 = list(df.values)
print(type(df2list2),type(df2list2[0]))
df2list2

在这里插入图片描述
图七 使用 list() 方法转换 Pandas Dataframe 数据框的结果

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值