200 개의 더하기 열과 10000 개의 더하기 행이 있습니다. 행에 특정 값이 포함 된 열의 이름을 찾으려고합니다. 아래 예에서 특정 값은 값 열에 있습니다. '값'열에서 값을 식별하는 방법은 중요하지 않습니다.
예 : Value_Col은 반환하려는 값입니다.
Date Time A B C D E F Value Value_Col
Jan1 1245 3.0 3.2 4.6 5.7 2.1 8.0 5.7 D
Jan2 1045 4.5 8.4 3.9 2.2 9.4 8.3 3.9 C
Jan3 1350 1.4 3.3 4.5 8.9 1.4 0.4 1.4 A
A부터 F까지의 열만 검색하고 값이 존재하는 첫 번째 인스턴스 (가장 왼쪽)의 열 이름을 찾고 싶습니다. 이 예에서 내 관심 가치는 Date of Jan3으로 시작하는 행에 두 번 나타납니다. 기본적으로 값이 나타나는 열 이름을 인덱싱하고 첫 번째 항목을 선택합니다. 값 검색을 위해 반환 된 목록에 따라 이것이 인덱스 0 (또는 [0])이라는 것을 이해합니다.
위의 예는 데이터의 일부일뿐입니다. 현재 값 검색을 수행하려는 모든 열 이름의 목록이 있습니다. 관심있는 값은 동일한 행에있는 많은 열을 통해 발생할 수 있습니다.
A부터 F까지의 열만 검색하고 값이있는 첫 번째 인스턴스 (가장 왼쪽)의 열 이름을 찾고 싶습니다.
열을 datframe의 슬라이스와 비교 한 후 idxmax
on axis=1
을 사용할 수 있습니다 Value
(사용 .loc[]
).
df['Value_Col'] = df.loc[:,'A':'F'].isin(df['Value']).idxmax(1)
print(df)
Date Time A B C D E F Value Value_Col
0 Jan1 1245 3.0 3.2 4.6 5.7 2.1 8.0 5.7 D
1 Jan2 1045 4.5 8.4 3.9 2.2 9.4 8.3 3.9 C
2 Jan3 1350 1.4 3.3 4.5 8.9 1.4 0.4 1.4 A
열에 df['Value]
값 이 포함되지 않을 가능성이있는 경우 다음을 사용할 수 있습니다.
m = df.loc[:,'A':'F']
df['Value_Col'] = m.isin(df['Value']).dot(m.columns).str[0]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다