코드를 일반화 시키고 싶습니다~


제가 가지고 있는 DB를 Pandas로 읽어 온 결과입니다.

bound = pd.read_csv('bound.csv')
bound

이미지

저는 (10, 10) 짜리 데이터를 하나의 colume, 즉 (100, 1)의 자료로 만들고자 합니다.

new_bound = pd.concat([bound.Col1, bound.Col2, bound.Col3, bound.Col4, bound.Col5, bound.Col6, bound.Col7, bound.Col8, bound.Col9, bound.Col10], ignore_index=True, axis=0)

이렇게 코딩을 해서 하나의 컬럼으로 만들긴 했는데....

제가 실제로 다뤄야 하는 DB는 (640, 350) 짜리의 엄청 큰 자료거든요... ㅠㅠ

그래서 일반화를 시키고자 아래와 같이 for문으로 만들고 싶습니다.

bound = pd.read_csv('bound.csv')
row, col = bound.shape

new_bound = bound.Col1
for i in range(2, row+1):
    new_bound = new_bound.append(bound.Coli)

append(bound.Coli) 이 부분에서 i가 계속 바뀌도록 하고 싶은데...

어떻게 해야 할까요 ㅠㅠ 도와주세요 ㅠㅠ

  • 2017년 12월 29일에 작성됨

조회수 104


1 답변


좋아요
1
싫어요
채택취소하기

아래의 행렬이 있습니다.

a,b,c,d,e
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5

이것의 전치행렬을 구하면

   0  1  2
a  1  1  1
b  2  2  2
c  3  3  3
d  4  4  4
e  5  5  5

이렇게 됩니다.

이렇게 구한 전치행렬에서 행의 값을 차례로 추려주면

[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5]

같이 얻을 수 있습니다,

import pandas as pd

bound = pd.read_csv('sample.csv')
bound_transpose = bound.transpose()

print(bound_transpose)
print([item for row in bound_transpose.get_values() for item in row])

   0  1  2
a  1  1  1
b  2  2  2
c  3  3  3
d  4  4  4
e  5  5  5
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5]
  • 2017년 12월 30일에 작성됨

  • 너무 감사합니다 ㅠㅠ 이제 막 파이썬 공부를 시작해서 모르는 게 참 많네요~ 새해 복 많이 받으세요!    강경희   2018.1.1 15:42     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close