홈>
데이터 프레임이 있습니다 :
df =
time time b
0 0.0 1.1 21
1 0.1 2.2 22
2 0.2 3.3 23
3 0.3 4.4 24
4 0.4 5.5 24
또한 다음과 같이 정의 된 단위에 대한 시리즈가 있습니다
su =
time sal
time zulu
b m/s
이제 df.index를 "time (sal)"값과 동일하게 설정하고 싶습니다. 이 값은 모든 열에있을 수 있으므로 확인해야합니다.
나는 이것을 할 수있다 :
df.index = df.values[:,(df.columns == 'time') & (su.values == 'sal')]
그러나 내 인덱스는 다음과 같습니다.
array([[0.0],
[0.1],
[0.2],
[0.3],
[0.4]])
그러나 이것은 배열의 배열입니다. 더 큰 데이터 세트에서는 플롯이 더 오래 걸리는 것 같습니다. 값을 하드 코딩하면 배열 만 얻습니다.
df.index = df[0,0]
array([0.0, 0.1, 0.2, 0.3, 0.4])
다음을 수행 할 수도 있습니다 :
inx = ((df.columns == 'time') & (s.values == 'sal')).tolist().index(True)
"inx"를 0으로 설정 한 다음 단일 배열을 얻는다
df.index=df.values[0,inx]
그러나 나는 이것을 할 필요가 없다. 팬더와 부울 색인을 잘못 사용하고 있습니까?
원합니다 :
df =
time time b
0.0 0.0 1.1 21
0.1 0.1 2.2 22
0.2 0.2 3.3 23
0.3 0.3 4.4 24
0.4 0.4 5.5 24
- 답변 # 1
- 답변 # 2
원래 DataFrame의 열 이름이 중복되어 복잡합니다. . 열 이름을 수정 해보십시오.
샘플 코드unit = pd.Series(['sal', 'zulu', 'm/s'], index=['time', 'time', 'b']) >>> df time time b 0 0.0 1.1 21.0 1 0.1 2.2 22.0 2 0.2 3.3 23.0 3 0.3 4.4 24.0 4 0.4 5.5 25.0 new_col = ['{}({})'.format(df.columns[i], unit[i]) for i in range(len(df.columns))] >>> new_col ['time(sal)', 'time(zulu)', 'b(m/s)'] >>> df.columns = new_col >>> df time(sal) time(zulu) b(m/s) 0 0.0 1.1 21.0 1 0.1 2.2 22.0 2 0.2 3.3 23.0 3 0.3 4.4 24.0 4 0.4 5.5 25.0 >>> df.index = df['time(sal)'].values >>> df time(sal) time(zulu) b(m/s) 0.0 0.0 1.1 21.0 0.1 0.1 2.2 22.0 0.2 0.2 3.3 23.0 0.3 0.3 4.4 24.0 0.4 0.4 5.5 25.0
관련 자료
- python 3.x - Pandas 데이터 프레임의 부울 인덱싱
- python - 인덱스가있는 동안 Pandas 데이터 프레임 인덱싱 오류
- python - 두 개의 다른 시리즈를 대조하려는 다중 레벨 인덱싱 팬더
- python 3.x - pandas - 색인으로 행을 선택하는 부울 (datetimeindex)
- python - 값이 x 기간에서 n 배 증가할지 여부를 나타내는 Pandas 부울 열을 만드는 방법은 무엇입니까?
- python - Pandas 부울 검사가 예기치 않게 False 대신 True를 반환합니다
- python - Pandas Drop 부울 값
- python - Pandas 참조 및 인덱싱
- pandas - 정수 유형의 iLocation 기반 부울 색인 작성을 사용할 수 없습니다
- python - 팬더 색인 및 index의 기능
- python - 팬더 부울 필터링 - 데이터의 실제 하위 집합을 만드는 데 어떻게 사용할 수 있습니까?
- python - 팬더 부울 마스크에는 NaN이 포함되어 있습니다 필터링하는 방법?
- 파이썬 3.7 부울 색인 생성 * 경고 * '목록'사용
관련 질문
- python : Pandas에서 조건을 만족하는 셀들을 하나의 셀로 결합하면서 컬럼명과 충족된 조건별로 그룹화하는 방법
- python : 한 열이 막대의 색상을 나타내는 막대 차트로 데이터 프레임
- 타임스탬프 처리 Python Panda
- python : Pandas의 첫 번째 열을 제외한 헤더를 증가시키는 방법
- python : Pandas와 함께 Glob을 사용하여 CSV 폴더를 반복하는 방법은 무엇입니까?
- python : Pandas dp가 여러 문자열로 행 삭제
- python : 큰 숫자가 PLOT Pandas에 나타나지 않도록 차단
- python : 히스토그램에 백분위수 값 표시 문제
- python : 행을 추가할 때 dtype이 object로 변경되는 이유는 무엇입니까?
- python : pandas resample에서 first()는 무엇을 합니까?
알다시피, 이것은 당신이 기대 한 것입니다. 그러나 시간 이름의 이름을 time1&time2로 바 꾸었습니다. 그렇지 않으면 동일한 이름으로 사전을 만들 수 없습니다.