2017-12-01 2 views
1

나는 파이썬에서 라이터를 사용하여 csv 파일을 만들었습니다. 나는이 csv 파일을 "데이터"라고 불렀다.이 파일은 40 열로 된 하나의 열로 구성되어있다. 그런 다음 새 파이썬 스크립트에서이 CSV 파일을 가져오고 데이터 프레임을 만듭니다. 그러나 새로운 데이터 프레임에서는이 40 개의 데이터 요소를 각각 10 개의 행이있는 4 개의 열로 나누고 싶습니다. 내가 지금까지 시도하면 다음과 같다 :파이썬의 데이터 프레임에있는 csv 파일의 열 추가

data=pandas.read_csv("location/data.csv", header=None) 
    frame=pandas.DataFrame(data[:10]) 
    frame['second column']=data[10:20] 

이 "두 번째 열"이라는 dataframe "프레임"에 새 열을 만들지 만 모든 항목은 NAN입니다. 그것은 파이썬 CSV 파일에서 이러한 항목을 인식 할 수없는 것 같습니다. 어떤 도움을 주시면 감사하겠습니다. 이와

Var1="data" 
    with open(Var1,"ab") as output: 
      writer=csv.writer(output, lineterminator='\n') 
      for val in variable: 
       writer.writerow([val]) 

나는 기본적으로 별도의 CSV 파일에 배열 "변수"의 값을 저장 : 다음은 내가 CSV 파일을 만드는 데 사용되는 코드입니다.

답변

1

이것은 가장 우아한 해결책은 아니지만 문제를 해결한다고 생각합니다.

import numpy as np 
import pandas as pd 

x = list(range(0, 40)) 
data = pd.DataFrame(x, columns=["A"]) 
arr = data.as_matrix() 

data = pd.DataFrame(arr.reshape((10, 4), order="F"), 
        columns=['A', 'B', 'C', 'D']) 

단순히 "F"에서 "C"로하여 order 매개 변수를 변경 재편 data의 순서를 변경합니다.

+1

나는'arr'이 당신이'arr = np.asarray (range (0,40)) [:,]와 똑같이 할 수있는 모양을 바꾸는 방법을 보여주기 위해 사용하고있는 샘플 데이터라고 가정합니다. 없음]', 필요없이 목록 -> 데이터 프레임 -> numpy.array. – GPhilo

+1

OP가 사용했던 시작점, 구체적으로 '데이터'라는 데이터 프레임을 복제하려고했습니다. 이 코드를 주셔서 감사합니다. 나는'np.newaxis'가 단지'None'이라는 것을 깨닫지 못했습니다. – GeneticsGuy