I have a 누마피 어레이입니다 목록니다 구성된 나타내는 열거합니다 이차원 어레이에는 행일 레이블 및 열 이름으로 다음과 같습니다.
data = array([['','Col1','Col2'],['Row1',1,2],['Row2',3,4]])
내가 다음과 같이 인덱스화할 지정할 수 있습니다.
df = pd.DataFrame(data,index=data[:,0]),
그러나 나는 최상의 방법을 잘 모르는 열 할당할지 헤더도.
데이터 '를 지정해야 합니다', '인덱스화할' 와 '열' 을 ['다테프라임'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html # 프란다s.다타프라임) 생성자에서는 같이.
>>> pd.DataFrame(data=data[1:,1:], # values
... index=data[1:,0], # 1st column as index
... columns=data[0,1:]) # 1st row as the column names
edit: 같이 셀명 @joris 변경해야 할 수도 있습니다 (데이터 [1, 1:]) '이상' np.int_ 정확한 데이터 형식을 가질 수 있다.
다음은 이해하기 쉬운 솔루션이므로
import numpy as np
import pandas as pd
# Creating a 2 dimensional numpy array
>>> data = np.array([[5.8, 2.8], [6.0, 2.2]])
>>> print(data)
>>> data
array([[5.8, 2.8],
[6. , 2.2]])
# Creating pandas dataframe from numpy array
>>> dataset = pd.DataFrame({'Column1': data[:, 0], 'Column2': data[:, 1]})
>>> print(dataset)
Column1 Column2
0 5.8 2.8
1 6.0 2.2
요리스 나도 동의한다. 이 같은 일을 하고 있는 것 같은데, 다르게 됩니다 [누마피 기록하십시오 어레이에는] [1]. 수정, " 2" 옵션이 있습니다. 이 멋지구리해요 오토메이티드 에서, 이렇게 할 수 있습니다.
import pandas
import numpy
dtype = [('Col1','int32'), ('Col2','float32'), ('Col3','float32')]
values = numpy.zeros(20, dtype=dtype)
index = ['Row'+str(i) for i in range(1, len(values)+1)]
df = pandas.DataFrame(values, index=index)
[1]: 1/user/basics.rec.html http://docs.scipy.org/doc/numpy-1.10
추가 @behzad.nouri & # 39 의 답 - 일상적인 처리할 수 있는 일반적인 경우에 이 도우미 작성할 수 있습니다.
def csvDf(dat,**kwargs):
from numpy import array
data = array(dat)
if data is None or len(data)==0 or len(data[0])==0:
return None
else:
return pd.DataFrame(data[1:,1:],index=data[1:,0],columns=data[0,1:],**kwargs)
data = [['','a','b','c'],['row1','row1cola','row1colb','row1colc'],
['row2','row2cola','row2colb','row2colc'],['row3','row3cola','row3colb','row3colc']]
csvDf(data)
In [61]: csvDf(data)
Out[61]:
a b c
row1 row1cola row1colb row1colc
row2 row2cola row2colb row2colc
row3 row3cola row3colb row3colc
>>import pandas as pd
>>import numpy as np
>>data.shape
(480,193)
>>type(data)
numpy.ndarray
>>df=pd.DataFrame(data=data[0:,0:],
... index=[i for i in range(data.shape[0])],
... columns=['f'+str(i) for i in range(data.shape[1])])
>>df.head()
[![array to dataframe][1]][1]