2014-05-02 6 views
5

में डालकर मैं निम्नलिखित डेटा को आगे विश्लेषण के लिए पांडा में रखना चाहता हूं।numpy ndarray डेटा को पांडा

import numpy as np 
import pandas as pd 
from pandas import DataFrame 

data = np.array([[[1, 1, 1, np.nan, 1], [np.nan, 1, 1, 1, 1]], 
       [[2, np.nan, 2, 2, 2], [2, np.nan, 2, 2, 2]], 
       [[3, 3, 3, np.nan, 3], [3, 3, 3, 3, np.nan]]]) 

pnda = pd.Series(data) 

print pnda 

लेकिन निम्न त्रुटि होती है:

Exception: Data must be 1-dimensional 

यह ऐसा करने का अच्छा तरीका क्या है? मेरा अगला विश्लेषण np.nan मानों को क्यूबिक या बहुपद विधि के साथ इंटरपोलेशन द्वारा भरना और नतीजे सरणी के रूप में परिणाम आउटपुट करना है।

+0

बहुआयामी डेटा के लिए डेटाफ्रेम का उपयोग करें, न कि श्रृंखला। – Ffisegydd

+0

@Ffisegydd ऐसा लगता है कि 'डेटाफ्रेम' केवल 2-डी arrays स्वीकार करता है ... –

+0

@neha क्या आपको वास्तव में पांडों को 3-डी सरणी पारित करने की आवश्यकता है? –

उत्तर

2

अपनी टिप्पणी पर आप प्राप्त कर सकते हैं कि तुम क्या अगर आप data नयी आकृति प्रदान, DataFrame.interpolate() विधि और फिर वापसी का उपयोग कर अंतर्वेशन चाहते आधार पर सरणी अपने मूल मूल्य के लिए। यह पांडा 0.13.1 के लिए काम करता है।

df = pd.DataFrame(data.reshape(2, -1)) 
df.interpolate(axis=1).values.reshape(data.shape) 
#array([[[1, 1, 1, 1, 1], 
#  [1, 1, 1, 1, 1]], 
# 
#  [[2, 2, 2, 2, 2], 
#  [2, 2, 2, 2, 2]], 
# 
#  [[3, 3, 3, 3, 3], 
#  [3, 3, 3, 3, 3]]], dtype=int64) 
3

एक पैनल का उपयोग कर प्रयास करें:

import numpy as np 
import pandas as pd 

data = np.array([[[1, 1, 1, np.nan, 1], [np.nan, 1, 1, 1, 1]], 
       [[2, np.nan, 2, 2, 2], [2, np.nan, 2, 2, 2]], 
       [[3, 3, 3, np.nan, 3], [3, 3, 3, 3, np.nan]]]) 

x = pd.Panel(data) 
x 

<class 'pandas.core.panel.Panel'> 
Dimensions: 3 (items) x 2 (major_axis) x 5 (minor_axis) 
Items axis: 0 to 2 
Major_axis axis: 0 to 1 
Minor_axis axis: 0 to 4 

और ...

print(x.loc[0]) 
    0 1 2 3 4 
0 1 1 1 NaN 1 
1 NaN 1 1 1 1 
+0

नहीं कि 'इंटरपोलेट' पैनल पैनल आईआईआरसी पर लागू नहीं किया गया है, जो ओपी की मूल आवश्यकता थी। आपको शायद पैनल के आइटमों पर फिर से प्रयास करने की आवश्यकता होगी। – TomAugspurger

+0

@TomAugspurger या शायद एक नेस्टेड 'लागू' 0_o –

संबंधित मुद्दे