본문 바로가기

분류 전체보기

(279)
Pandas를 이용해 가져온 Database 조건에 따라 데이터 선택하기 저번 포스팅에서는 CSV파일을 다음과 같이 가져왔었다. danceData = pd.read_csv("Dance1_1.csv",header=None) 의 결과로는 다음과 같았다. 해당 파일에서 원하는 데이터만을 선택하고 싶을때를 알아보겠습니다. 저같은 경우는 ID를 (시간을 제외하고) 일단 출력을 하고 싶었어요 간단합니다. 슬라이스를 사용했습니다. 주의! 참고로 슬라이싱은 Column이 아닌 Row만 가능합니다. print(danceData.loc[0:10]) 의 결과는 다음과 같습니다. 그러면 나는 출력하고 싶은 Column만을 선택하고 싶으면 어떻게 해야할까.? 다음과 같이 하면 됩니다. print(danceData.iloc[:10,1:]) 해당 코드의 결과는 다음과 같습니다. 해석하면 0번째부터 10..
Pandas를 이용한 DB 데이터 (CSV)불러오기 일단 데이터 베이스에서 데이터를 CSV로 저장해야합니다. Expoert 메뉴를 눌러 CSV파일로 내보낸다. 그리고 CSV를 불러봅시다. 해당 코드를 작성해서 실행하면 다음과 같은 결과를 얻습니다. 자동으로 Row 값이 들어간것을 확인할 수 있습니다. 그리고 danceData.to_csv("dance1_1_1.csv")라는 함수를 사용하면 해당 이름의 csv파일로 저장이 가능하다. 다음은 가져온 데이터베이스에서 데이터를 선택하는 방법을 포스팅 하겠습니다.
Python Pandas를 이용한 데이터 처리 - DataFrame DataFrame은 전 포스팅에서 다뤘던 Series 타입을 연결한 것이다. Series가 1차원이면 DataFrame은 2차원 리스트 또는 배열이라고 생각하면 된다. DataFrame은 딕셔너리를 기반으로 만들 수 있으며, 아래와 같이 사용하면 된다. 참고로 딕셔너리는 Key: Value 로 이루어져있고, Key 부분이 열이 된다. Class= { "name":["a","b","c","d"], "id":[1,2,3,4], "date":[6.12,4.31,5.21,3.11] } class_df = pd.DataFrame(Class) print (class_df) 의 결과는 다음과 같다. 간단하네요. 다음포스팅에서는 실제 데이터베이스에서 데이터 불러와서 사용하는 방법 (CSV)를 포스팅 하겠습니다.
Python Pandas를 이용한 데이터 처리 - Series 팬더스의 경우 파이썬의 데이터 타입을 그대로 사용하지 않는다. 처리속도를 높이기 위해서 numpy의 데이터 타입을 확장해서 사용한다. 팬더스의 고유 데이터타입은 2가지인데, Series와 DataFrame 다. Series 데이터 타입 만들기 Series는 1차원 배열이며 숫자로 된 인덱스를 갖지만 사용가의 지정에 따라 인덱스의 이름을 가질 수 있다. 예시입니다. s = pd.Series(["m","i","u","h",3,9,4]) print(s) 의 결과는 다음과 같습니다. pandas를 사용하는 이유가 인덱스를 설정할 수 있기 때문입니다. Series도 마찬가지로 다음과 같이 인덱스를 설정할 수 있습니다. s = pd.Series(["m","i","u","h",3,9,4], index=["a","b"..
리스트와 numpy 문제 => 해결 이전 포스팅에서 리스트에 대해서 문제가 발생했었다. 문제가 되는 리스트 선언 부분을 확인해보자. 선언 방식을 보면 행과 열 사이에 *로 표시되었다. 해당 방식을 사용하면 객체의 복사가 아니라 레퍼런스의 복사가 일어나서 하나의 값을 수정하면 다른 행의 값도 바뀌게 된다. 무슨말인지 모르겟다면 다음의 예시를 보면 될 것 같다.! TEST = [ [0] * 4] * 3 print(TEST) 결과: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] 여기서 TEST[0][0]에 임의의수를 대입하면 어떻게 될까? TEST[0][0] = print(TEST) 결과: [[3, 0, 0, 0], [3, 0, 0, 0], [3, 0, 0, 0]] 보다싶이 값이 동일한 부분에 다 들어가는 문제가 ..
리스트와 numpy 문제? 해당 코드를 numpy와 list 선언 차이로 인해 결과가 달라지는 문제 발생. 리스트로 선언한 경우는 마지막 레이블만 중복해서 들어가는 문제가 발생했지만 numpy로 선언한 경우는 재대로 모든 데이터가 잘 들어갔다. 같은 알고리즘을 돌렸는데 선언만으로 왜 결과가 달라지는지 이해가 되지 않는다. 이것때문에 이틀을 버린게 너무나 짜증난다. 일단 문제점은 파악하고 여기다가 작성 할 예정이다. 현재는 왜그런지 파악이 안된상황..
python 리스트 슬라이싱 프로그램을 하다보니 기본이 안되어있는게 뼈져리게 느껴져서 공부하면서 작성해본다. python에서는 슬라이싱이라는 c언어와는 다른 기능을 제공한다. 이런 편리한 기능을 이용해서 편리하게 코딩이 가능하다. 보면 그냥 단수하게 이해하고 넘어갈 수 있는 부분이지만 막상 구현하려고 하면 잘 안된다. 따라서 연습을 해보자 그리고 1차원 리스트외 2차원 리스트에 대해서도 슬라이싱을 연습해 볼 생각이다. 리스트의 슬라이싱 기본형태는 다음과 같다. List[Start : End : Step] 각각 시작지점, 끝지점, 몇개씩 끊어서 가져올지 정함 a = [1, 2, 3, 4, 5] print(a[1:]) print(a[:2]) print(a[1:4]) 의 결과는 다음과 같다. 1차원 리스트 슬라이싱은 간단하게 알아보았고,..
python 리스트 컴프리헨션(Comprehension) joint_pixelX = [[1 for i in range(19)] for j in range(4)] joint_pixelY = [[1 for i in range(19)] for j in range(4)] joint_dist = [[0 for i in range(19)] for j in range(4)] 이게 뭐지.. 전혀 본적이 없는 리스트 선언 방식인데? 라고 생각하고 엄청난 고민을 하다 겨우 찾았습니다. 바로 리스트 내에서 for문을 사용해 선언하는 방법으로 리스트 컴프리헨션이라고 합니다. 먼저 리스트 컴프리헨션을 사용하지 않는 기존의 방법을 예시를 들어보겠다. a=[] for x in range(0,5): a.append(x) 결과는 생성한 리스트에 0부터 4까지 들어갈 것입니다. 이것을 리스트..