前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python ndarray与pandas series相互转换,ndarray与dataframe相互转换

python ndarray与pandas series相互转换,ndarray与dataframe相互转换

作者头像
lovelife110
发布2021-01-14 14:39:22
4.4K0
发布2021-01-14 14:39:22
举报
文章被收录于专栏:爱生活爱编程爱生活爱编程

用python做科学计算时,经常需要类型转换,以下是常用类型转换

一、ndarray 转换为 series

1、如果ndarray是二维数组,如下

代码语言:javascript
复制
array([[1],
       [2],
       [3]])

需要通过map结合lamdba

代码语言:javascript
复制
import numpy as np
import pandas as pd

data = np.array([1, 2, 3]).reshape(3, 1)
data_list = map(lambda x: x[0], data)
ser = pd.Series(data_list)

2、如果ndarray是一维数组,如下

array([1, 2, 3])

则通过data.tolist()即可

代码语言:javascript
复制
import numpy as np
import pandas as pd

data = np.array([1, 2, 3])
ser = pd.Series(data.tolist())

二、series转换为ndarray

通过Series.values实现series转换为ndarray

代码语言:javascript
复制
import pandas as pd

data = [['2019/08/01', 10],
        ['2019/08/01', 11]]
result = pd.DataFrame(data, columns=['ds', 'val'])
result['val'].values

data2 = pd.Series([1, 2, 3])
data2.values

三、ndarray转换为dataframe

1、直接通过pd.DataFrame转换

代码语言:javascript
复制
import numpy as np
import pandas as pd

data = np.array([['2019/08/02', 'zhansan', 1], ['2019/08/03', 'lisi', 2], ['2019/08/04', 'wangwu', 3]])
df = pd.DataFrame(data)

打印df为

2、指定索引、数据、列名例子

代码语言:javascript
复制
import numpy as np
import pandas as pd

data = np.array([['', 'Col1', 'Col2'], ['Row1', 1, 2], ['Row2', 3, 4]])
df = pd.DataFrame(data=data[1:, 1:],  # 从第2行开始并且第2列开始作为数据
                  index=data[1:, 0],  # 第1列做索引,从第2行开始
                  columns=data[0, 1:])  # 第1行作为列名,从第2列开始

四、dataframe转换为ndarray

1、通过values方法,实现dataframe转换为ndarray

代码语言:javascript
复制
import pandas as pd

data = [['2019/08/01', 10],
        ['2019/08/01', 11]]
result = pd.DataFrame(data, columns=['ds', 'val'])
result.values

dataframe数据

转换后的是数据

2、通过切片,实现某一行或者某一列转换为ndarray

代码语言:javascript
复制
import pandas as pd

data = [['2019/08/01', 10],
        ['2019/08/01', 11]]
result = pd.DataFrame(data, columns=['ds', 'val'])
rs = result.values
print(rs[:, 0])
print(rs[0, :])
代码语言:javascript
复制
rs[:, 0] 逗号前面表示:行都保留,逗号后面0表示保留第一列,结果为['2019/08/01' '2019/08/01']
代码语言:javascript
复制
rs[0, :]表示保留第一行,列都保留,结果为['2019/08/01' 10]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、ndarray 转换为 series
  • 二、series转换为ndarray
  • 三、ndarray转换为dataframe
  • 四、dataframe转换为ndarray
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档