[開發技巧]·pandas如何保存numpy元素

[開發技巧]·pandas如何保存numpy元素


1.問題描述

在開發的過程當中遇到一個問題,就是須要把numpy做爲pandas的一個元素進行保存,注意不是做爲一列元素。可是實踐的過程當中卻不順利,會報錯,如今我解決了這個問題,而且把心得和理解分享出來,但願能幫到後來人。python

 

2.開發實戰

1.新建一些僞數據,用於保存bash

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進行保存而且顯示app

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

print(df)

這時程序報錯:spa

    raise Exception('Data must be 1-dimensional')
Exception: Data must be 1-dimensional

錯誤出如今df["list"] = lists,錯誤的緣由是lists不是一維數據(Data must be 1-dimensional),爲何會出現這個問題呢?code

緣由在lists = np.array([l1,l2]),lists成爲了二維的np.array,shape爲(2,4)。blog

如何解決呢?須要把np.array轉爲list,就變爲一維數據了ip

3.修正代碼element

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)
輸出結果:
                   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區別是什麼呢?後面我會經過一個博客來好好闡述一下。get

相關文章
相關標籤/搜索