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


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


1.問題描述

在開發的過程中遇到一個問題,就是需要把numpy作為pandas的一個元素進行保存,注意不是作為一列元素。但是實踐的過程中卻不順利,會報錯,現在我解決了這個問題,並且把心得和理解分享出來,希望能幫到后來人。

 

2.開發實戰

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

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

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

print(df)

這時程序報錯:

    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.修正代碼

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區別是什么呢?后面我會通過一個博客來好好闡述一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM