python 에서 pandas.dataFrame 의 간단 한 조작 방법(생 성,색인,추가 및 삭제)

머리말
최근 에 인터넷 에서pandas.DataFrame에 관 한 조작 설명 을 많이 검색 했다.모두 기본 적 인 조작 이지 만 이런 조작 들 을 조합 하면 DataFrame 을 정확하게 조작 하 는 데 시간 이 많이 걸 렸 다.나 는 버그 를 조정 하 는 데 오 랜 시간 이 걸 렸 다.나 는 여기에서 약간의 총 결 을 해서 너 와 나 그 를 편리 하 게 한다.관심 있 는 친구 들 끼 리 한번 봅 시다.
1.DataFrame 을 만 드 는 간단 한 작업:
1.사전 에 따라 창조:

In [1]: import pandas as pd
In [3]: aa={'one':[1,2,3],'two':[2,3,4],'three':[3,4,5]}
In [4]: bb=pd.DataFrame(aa)
In [5]: bb
Out[5]: 
 one three two
0 1 3 2
1 2 4 3
2 3 5 4`
사전 의 keys 는 DataFrame 에 있 는 columns 이지 만 index 의 값 이 없 기 때문에 스스로 설정 해 야 합 니 다.기본 값 은 0 부터 계산 하 는 것 을 설정 하지 않 습 니 다.

bb=pd.DataFrame(aa,index=['first','second','third'])
bb
Out[7]: 
 one three two
first 1 3 2
second 2 4 3
third 3 5 4
2.다 차원 배열 에서 만 들 기

import numpy as np
In [9]: del aa
In [10]: aa=np.array([[1,2,3],[4,5,6],[7,8,9]])
In [11]: aa
Out[11]: 
array([[1, 2, 3],
 [4, 5, 6],
 [7, 8, 9]])
In [12]: bb=pd.DataFrame(aa)
In [13]: bb
Out[13]: 
 0 1 2
0 1 2 3
1 4 5 6
2 7 8 9
다 차원 배열 에서 만 들 려 면 DataFrame 에 columns 와 index 를 부여 해 야 합 니 다.그렇지 않 으 면 기본 적 이 고 추 합 니 다.

bb=pd.DataFrame(aa,index=[22,33,44],columns=['one','two','three'])
In [15]: bb
Out[15]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9
3.다른 DataFrame 로 만 들 기

bb=pd.DataFrame(aa,index=[22,33,44],columns=['one','two','three'])
bb
Out[15]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9
cc=bb[['one','three']].copy()
Cc
Out[17]: 
 one three
22 1 3
33 4 6
44 7 9
이곳 의 복사 본 은 깊 은 복사 본 으로 cc 의 값 을 바 꾸 면 bb 의 값 을 바 꿀 수 없습니다.

cc['three'][22]=5
bb
Out[19]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9

cc
Out[20]: 
 one three
22 1 5
33 4 6
44 7 9
2.DataFrame 의 색인 작업:
DataFrame 에 있어 서 색인 은 가장 귀 찮 고 실수 하기 쉽다.
1.색인 1 열 또는 몇 열,비교적 간단 합 니 다.

bb['one']
Out[21]: 
22 1
33 4
44 7
Name: one, dtype: int32
여러 열 이름 은 입력 한 열 이름 을 목록 에 저장 해 야 collerable 의 변수 입 니 다.그렇지 않 으 면 잘못 알 릴 수 있 습 니 다.

bb[['one','three']]
Out[29]: 
 one three
22 1 3
33 4 6
44 7 9
2.한 개의 기록 이나 몇 개의 기록 을 색인 합 니 다.

bb[1:3]
Out[27]: 
 one two three
33 4 5 6
44 7 8 9
bb[:1]
Out[28]: 
 one two three
22 1 2 3
여기 서 는 콜론 이 반드시 있어 야 하 며,그렇지 않 으 면 색인 열 이 있어 야 한다.
3.색인 몇 열의 변수의 몇 가지 기록,이것 은 나 를 오랫동안 괴 롭 혔 다.
제 1 종

bb.loc[[22,33]][['one','three']]
Out[30]: 
 one three
22 1 3
33 4 6
이것 은 이 안의 값 을 바 꿀 수 없습니다.당신 은 읽 을 수 있 을 뿐 값 을 쓸 수 없습니다.loc()함수 와 관련 이 있 을 수 있 습 니 다.

bb.loc[[22,33]][['one','three']]=[[2,2],[3,6]]
In [32]: bb
Out[32]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9
두 번 째:역시 볼 수 밖 에 없다.

bb[['one','three']][:2]
Out[33]: 
 one three
22 1 3
33 4 6
그 값 을 바 꾸 려 면 잘못 보고 할 것 이다.

In [34]: bb[['one','three']][:2]=[[2,2],[2,2]]
-c:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
F:\Anaconda\lib\site-packages\pandas\core\frame.py:1999: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
 return self._setitem_slice(indexer, value)
세 번 째:데이터 의 값 을 바 꿀 수 있 습 니 다!!
Iloc 는 데이터 의 행렬 수 에 따라 색인 합 니 다.index 와 columns 는 아 닙 니 다.

bb.iloc[2:3,2:3]
Out[36]: 
 three
44 9

bb.iloc[1:3,1:3]
Out[37]: 
 two three
33 5 6
44 8 9
bb.iloc[0,0]
Out[38]: 1
다음은 증명:

bb.iloc[0:4,0:2]=[[9,9],[9,9],[9,9]]
In [45]: bb
Out[45]: 
 one two three
22 9 9 3
33 9 9 6
44 9 9 9
3.기 존의 DataFrame 에 columns 또는 몇 개의 columns 를 새로 만 듭 니 다.
1.아무것도 사용 하지 않 고 한 열 만 만 만 들 수 있 습 니 다.여러 열 은 사용 하기 어렵 고 테스트 가 잘못 되 었 습 니 다.

bb['new']=[2,3,4]
bb
Out[51]: 
 one two three new
22 9 9 3 2
33 9 9 6 3
44 9 9 9 4
bb[['new','new2']]=[[2,3,4],[5,3,7]]
KeyError: "['new' 'new2'] not in index"
부 여 된 list 는 기본적으로 주어진 index 값 순서에 따라 값 을 부여 하 는 것 입 니 다.그러나 일반적으로 우 리 는 대응 하 는 index 에 대해 값 을 부여 해 야 합 니 다.더 높 은 값 을 부여 하려 면 뒤의 값 을 보 세 요.
2.사전 을 사용 하여 여러 열 을 index 에 따라 할당 합 니 다.

aa={33:[234,44,55],44:[657,77,77],22:[33,55,457]}
In [58]: bb=bb.join(pd.DataFrame(aa.values(),columns=['hi','hello','ok'],index=aa.keys()))
In [59]: bb
Out[59]: 
 one two three new hi hello ok
22 9 9 3 2 33 55 457
33 9 9 6 3 234 44 55
44 9 9 9 4 657 77 77
여기 aa 는 사전 과 목록 의 내장 으로 하나의 기록 에 해당 하 며,keys 를 index 이름 으로 사용 합 니 다.일반적인 기본 columns 이름 이 아 닌 index 이름 으로 사용 합 니 다.index 다 열 에 따라 일치 하 는 목적 을 달성 하 였 습 니 다.dict()저장 이 혼 란 스 러 워 서dict()그 에 게 index 할당 을 주지 않 으 면 기록 이 어 지 러 울 수 있다 는 점 에 주의 할 필요 가 있다.
4.다 중 열 또는 다 중 기록 삭제:
열 삭제

bb.drop(['new','hi'],axis=1)
Out[60]: 
 one two three hello ok
22 9 9 3 55 457
33 9 9 6 44 55
44 9 9 9 77 77
기록 삭제

bb.drop([22,33],axis=0)
Out[61]: 
 one two three new hi hello ok
44 9 9 9 4 657 77 77
여러분 과python 에서 pandas.dataFrame 줄 과 열 에 대한 요구 와 새로운 줄 과 열 예제 추가에 관 한 한 편 을 공유 하고 관심 있 는 분 들 은 보 실 수 있 습 니 다.
DataFrame 은 아직 관련 되 지 않 은 기능 이 많 습 니 다.나중에 관련 되 고 홈 페이지 의 API 를 본 후에 도 계속 공유 할 것 입 니 다.everything is ok.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기