데이터 프레임에서 행을 선택하여 열 이름으로 만드는 방법은 무엇입니까? 팬더
1
내가 행 3 열 인덱스를 만들고 싶어
A
답변
2
1
나는 당신이 df
에서 loc
및 drop
이 행이 선택 행을 필요가 있다고 생각 :
df = pd.DataFrame({'A':['Groups'], 'B':['Quantity'], 'C':['Net Sales']}, index=[3])
df.columns = df.loc[3]
df = df.drop(3)
print (df)
Empty DataFrame
Columns: [Groups, Quantity, Net Sales]
Index: []
그러나 더 나은 예를 들어, 그것을 피할입니다 에 대한 사용 read_csv
이 DataFrame
을받을 경우, 주요 장점은 매개 변수 skiprows
를 사용 read_csv
모든 컬럼의 권리 dtypes를 얻을 :
import pandas as pd
from pandas.compat import StringIO
temp=u"""A,B,C
D,E,F
G,H,I
J,K,L
Groups Quantity,Net,Sales
4,6,4"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp))
print (df)
A B C
0 D E F
1 G H I
2 J K L
3 Groups Quantity Net Sales
4 4 6 4
df = pd.read_csv(StringIO(temp), skiprows=4)
print (df)
Groups Quantity Net Sales
0 4 6 4
타이밍 :
In [319]: %timeit (df.T.set_index(3).T.reset_index(drop=True).astype(float).rename_axis(None, 1))
10 loops, best of 3: 43.1 ms per loop
In [320]: %timeit (jez(df))
10 loops, best of 3: 23.7 ms per loop
In [321]: %timeit (jez1(df))
100 loops, best of 3: 13.6 ms per loop
코드 타이밍을 위해 : 또한
모든 데이터가 문자열이면 모든 솔루션에 float
으로 변환됩니다. 그럴 필요는 없습니다.
np.random.seed(100)
df = pd.DataFrame(np.random.random((100000,3)), columns=list('ABC'))
df = df.drop([0,1,2])
df.loc[3] = ['Groups', 'Quantity', 'Net Sales']
print (df)
print (df.T.set_index(3).T.reset_index(drop=True).astype(float).rename_axis(None, 1))
def jez(df):
df.columns = df.loc[3]
return df.drop(3).reset_index(drop=True).astype(float).rename_axis(None, 1)
def jez1(df):
arr = df.values
#get position (number of row) with 3
idx = df.index.get_loc(3)
return pd.DataFrame(np.delete(arr, (idx), axis=0).astype(float), columns=arr[idx])
관련 문제
- 1. 팬더 데이터 프레임에서 행을 삭제하는 방법은 무엇입니까?
- 2. 팬더 데이터 프레임에서 인덱스를 재설정하는 방법은 무엇입니까?
- 3. 팬더 데이터 프레임에서 CSV로
- 4. 데이터 프레임에서 NULL 열 제거 팬더?
- 5. R의 데이터 프레임에서 행을 dplyr과 쌍으로 만드는 방법은 무엇입니까?
- 6. 팬더 데이터 프레임에서 정보 추출
- 7. 팬더 데이터 프레임에 행을 옮겨서 열을 만드는 방법은 무엇입니까?
- 8. 팬더 : 데이터 프레임에서 선택시 느림
- 9. 데이터 프레임에서 행을 결합하는 방법은 무엇입니까?
- 10. 데이터 프레임에서 행을 팝하는 방법은 무엇입니까?
- 11. R에서는 데이터 프레임에서 행을 선택하는 방법은 무엇입니까?
- 12. 팬더 데이터 프레임에서 0을 삭제하십시오.
- 13. 특정 열을 기반으로 팬더 데이터 프레임에서 동일한 행을 선택하는 방법
- 14. 데이터 프레임에서 열 선택
- 15. 팬더 데이터 프레임에서 산점도 작성
- 16. 팬더 : 데이터 프레임에서 역 중복 제거
- 17. 팬더 데이터 프레임에서 양자화 표준화
- 18. 팬더 데이터 프레임에서 중복 된 값의 모든 행을 수정하는 방법
- 19. 팬더 데이터 프레임에서 특정 패턴을 따르는 행을 선택하십시오.
- 20. 팬더 데이터 프레임에서 하위 집합을 동적으로 선택하는 방법은 무엇입니까?
- 21. Python의 다른 데이터 프레임에서 열 조합을 선택하는 경우 팬더
- 22. 팬더 데이터 프레임에서 시간주기를 변경하십시오.
- 23. 팬더 데이터 프레임에서 각각에 지정된 값 추가하기
- 24. 데이터 프레임에서 행을 선택하면
- 25. 데이터 프레임에서 임의의 행을 선택합니다.
- 26. 팬더 데이터 프레임에서 이상치 행 제거
- 27. 팬더 데이터 프레임에서 인덱스 된 행을 제외하는 가장 효율적인 방법
- 28. 팬더 데이터 프레임에서 유사한 행을 식별하고 레이블을 지정하는 방법
- 29. 첫 번째 행을 열 이름으로 사용 하시겠습니까? 팬더 read_html
- 30. 팬더 데이터 프레임에서 필터링 후 행 삭제
는 [방법 - 투 - 요청이 읽기입니다 (http://stackoverflow.com/help/how-to-ask) 가이드 라인을 따르도록하고 문제를 해결하려고 시도한 샘플 코드와 오류 메시지가있을 경우이를 보여주기 위해 질문을 수정하십시오. – thewaywewere