前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[开发技巧]·pandas如何保存numpy元素

[开发技巧]·pandas如何保存numpy元素

作者头像
小宋是呢
发布2019-06-27 14:27:52
1.4K0
发布2019-06-27 14:27:52
举报
文章被收录于专栏:深度应用深度应用

[开发技巧]·pandas如何保存numpy元素

1.问题描述

在开发的过程中遇到一个问题,就是需要把numpy作为pandas的一个元素进行保存,注意不是作为一列元素。但是实践的过程中却不顺利,会报错,现在我解决了这个问题,并且把心得和理解分享出来,希望能帮到后来人。

2.开发实战

1.新建一些伪数据,用于保存

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

l1 = [1,2,3,4]
l2 = [.1,.2,.3,.4]

lists = np.array([l1,l2])
labels = [1,0]

2.新建DataFrame进行保存并且显示

代码语言:javascript
复制
df = pd.DataFrame()
df["list"] = lists
df["label"] = labels

print(df)

这时程序报错:

代码语言:javascript
复制
    raise Exception('Data must be 1-dimensional')
Exception: Data must be 1-dimensional

错误出现在df["list"] = lists,错误的原因是lists不是一维数据(Data must be 1-dimensional),为什么会出现这个问题呢?

原因在lists = np.array([l1,l2]),lists成为了二维的np.array,shape为(2,4)。

如何解决呢?需要把np.array转为list,就变为一维数据了

3.修正代码

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

l1 = [1,2,3,4]
l2 = [.1,.2,.3,.4]

lists = np.array([l1,l2])
lists = list(lists)
labels = [1,0]

df = pd.DataFrame()
df["list"] = lists
df["label"] = labels

print(df)

输出结果:

代码语言:javascript
复制
                   list  label
0  [1.0, 2.0, 3.0, 4.0]      1
1  [0.1, 0.2, 0.3, 0.4]      0

可能会有些朋友觉得代码有些麻烦,为什么先用np.array([l1,l2])转换为np.array再用list(lists)转换为list,其实这是为了模拟真实使用场景。一般我们接触到的数据都是np.array,再保存为pandas,就会报错(Data must be 1-dimensional),解决方法就是转换为list。

numpy.array和list区别是什么呢?后面我会通过一个博客来好好阐述一下。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年05月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • [开发技巧]·pandas如何保存numpy元素
    • 1.问题描述
      • 2.开发实战
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档