pandas 인덱스 설정
2010-05-09, ,51315.0
2010-05-09, ,5659.0
2010-05-16, ,1599.0
2010-05-23, ,2224.0
2010-05-23, ,
2010-05-23, ,1605.0
2010-05-09, ,51876.0
2010-05-16,X - ,102063.0
2010-05-16,X - ,102364.0
2010-05-16,X - ,102163.0
2010-05-09, ,5659.0
2010-05-16, ,
2010-05-23, ,2246.0
2010-05-16, ,
2010-05-16, ,
2010-05-09, ,5681.0
2010-05-16,X - ,102063.0
2010-05-09, ,5653.0
2010-05-16,X - ,
2010-05-16, ,1595.0
2010-05-16, ,106652.0
2010-05-09, ,51621.0
2010-05-09, ,51927.0
2010-05-09, ,5620.0
2010-05-16,X - ,101159.0
2010-05-16, ,
2010-05-09, ,51876.0
2010-05-09, ,5636.0
2010-05-16, ,
2010-05-09, ,51876.0
2010-05-16, ,106652.0
2010-05-09, ,51570.0
2010-05-16, ,106024.0
2010-05-16, ,
2010-05-16,X - ,100758.0
2010-05-23, ,106024.0
2010-05-09, ,5586.0
2010-05-23, ,
2010-05-09, ,5620.0
2010-05-09, ,51162.0
2010-05-23, ,1595.0
2010-05-09, ,51621.0
2010-05-23, ,2253.0
2010-05-23,X - ,101260.0
2010-05-16, ,105397.0
2010-05-16,X - ,101761.0
2010-05-16, ,1596.0
2010-05-09, ,
2010-05-23, ,2250.0
2010-05-16,X - ,101260.0
2010-05-09, ,
2010-05-23, ,2246.0
2010-05-16,X - ,101761.0
2010-05-09, ,
2010-05-16, ,105397.0
2010-05-16, ,
2010-05-16, ,106547.0
2010-05-09, ,51672.0
2010-05-16, ,1592.0
2010-05-16,X - ,102063.0
2010-05-16, ,1611.0
2010-05-23, ,2213.0
2010-05-16, ,1604.0
2010-05-16, ,1599.0
2010-05-09, ,
2010-05-23, ,
2010-05-16, ,
2010-05-09, ,51417.0
2010-05-23, ,
2010-05-16, ,1607.0
2010-05-09, ,5681.0
2010-05-23, ,2237.0
2010-05-09, ,51927.0
2010-05-16, ,105188.0
2010-05-16,X - ,102263.0
2010-05-16, ,
2010-05-09, ,5625.0
2010-05-16, ,106652.0
2010-05-16,X - ,
2010-05-09, ,5636.0
2010-05-16,X - ,
2010-05-16, ,104979.0
2010-05-09, ,
2010-05-16, ,
2010-05-09, ,51519.0
2010-05-16, ,1588.0
2010-05-16, ,106233.0
2010-05-16, ,1590.0
2010-05-16,X - ,100959.0
2010-05-09, ,5664.0
2010-05-09, ,
2010-05-16, ,1606.0
2010-05-23, ,1595.0
2010-05-23,X - ,100959.0
빈 줄을 읽고 다시 가다
f1 = 'fbr_d_n_b.csv'
df20105 = pd.read_csv(f1, names=['date','film','price'])
df20105.drop_duplicates(inplace=True)
df20105.dropna(inplace=True)
print df20105.__len__()
단일 색인
기본 인덱스는 단층 인덱스입니다. 다음은 단층 인덱스를 조작합니다
1 . 찾기/선택
df20105.index.values
2 . 새 인덱스 바꾸기/설정하기 3개의 함수 기억하기resetindex, 인덱스를 0,1,2,3,4로 set 증가시키기 시작합니다index, 데이터 프레임 중 하나를 인덱스로 하고 reindex는 새 인덱스를 설정합니다. 존재하지 않는 index에 대응하는 데이터는 Nan입니다.
, , :
df20105.reset_index(drop=True,inplace=True) #
date , :
df20105.set_index('date')
set_index index,
reindex index, 5 Nan,
, nan
df20105.reindex(map(lambda x: x, range(5, df20105.__len__()+5)))
3 . 정렬
df20105.sort_index(ascending=False)
기타
df20105.index.name = 'index_name'
다중 색인
먼저 질문: 데이터를 읽고 데이터 프레임을 5~9일, 5~16일, 5-23편의 6편의 영화가 각자의 평균 흥행을 기록했다. 만약에 어떤 영화가 당일 흥행이 없으면 0으로 표시한다(주의: 2010-05-09 당산 대지진도 여러 개의 다른 데이터를 가지고 평균치를 취하면 된다)
우리는 데이터 프레임을 다음과 같은 형식으로 처리하기만 하면 된다.
2010-05-09 X - 0.000000
0.000000
51564.333333
5640.500000
0.000000
0.000000
2010-05-16 X - 101638.888889
0.000000
0.000000
0.000000
1598.800000
105860.000000
2010-05-23 X - 101109.500000
2237.166667
0.000000
0.000000
1600.000000
106024.000000
위에서 준 데이터로 빈 것을 다시 제거한 후 인쇄하기 전 5줄은 다음과 같다
date film price
0 2010-05-09 51315.0
1 2010-05-09 5659.0
2 2010-05-16 1599.0
3 2010-05-23 2224.0
4 2010-05-23 1605.0
날짜와 이름으로 그룹을 나누기
df20105 = df20105.groupby(['date','film'])['price'].mean()
date film
2010-05-09 51564.333333
5640.500000
2010-05-16 X - 101638.888889
1598.800000
105860.000000
2010-05-23 X - 101109.500000
2237.166667
1600.000000
106024.000000
두 열에 따라 그룹을 나누면 데이터 프레임이 두 개의 인덱스로 변합니다. type을 출력해 보십시오
print type(df20105.index)
<class 'pandas.indexes.multi.MultiIndex'>
얻은 것은 멀티 인덱스다. 제목에 따라 4번에 빠진 영화 4편, 16번에 빠진 영화 3편, 23번에 빠진 영화 2편을 추가해 흥행 0으로 설정하면 된다.새 MultiIndex 다중 색인을 만들고 기존 색인을 대체한 다음 빈 값 부분을 0으로 채울 수 있습니다.
MultiIndex 생성에 필요한 매개 변수, 날짜 3개, 영화 6편 가져오기
index_data = df20105.index.levels #
index_데이터는 다음과 같습니다.
[[u' 2010-05-09', u' 2010-05-16', u' 2010-05-23'], [u'X - ', u' ', u' ', u' ', u' ', u' ']]
구성 데이터:
dates = index_data[0].values
films = index_data[1].values
arrays = [[], []]
for d in dates:
for f in films:
arrays[0].append(d)
arrays[1].append(f)
MultiIndex 만들기:
index = pd.MultiIndex.from_arrays(arrays) #arrays
새 index로 대체하고 빈 값을 0으로 채우기
df20105 = df20105.reindex(index,fill_value=0)
최종 인쇄 결과 일치
2010-05-09 X - 0.000000
0.000000
51564.333333
5640.500000
0.000000
0.000000
2010-05-16 X - 101638.888889
0.000000
0.000000
0.000000
1598.800000
105860.000000
2010-05-23 X - 101109.500000
2237.166667
0.000000
0.000000
1600.000000
106024.000000
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.