Programing

팬더 데이터 프레임 인덱스에 값이 있는지 확인하십시오.

lottogame 2020. 7. 21. 19:38
반응형

팬더 데이터 프레임 인덱스에 값이 있는지 확인하십시오.


나는 이것을 할 수있는 확실한 방법이 있다고 확신하지만 지금은 매끄러운 것을 생각할 수 없습니다.

기본적으로 대신 예외를 발생의 나는 좀하고 싶습니다 True또는 False값이 팬더에 존재하는지 df인덱스입니다.

import pandas as pd
df = pd.DataFrame({'test':[1,2,3,4]}, index=['a','b','c','d'])
df.loc['g']  # (should give False)

내가 지금 일하고있는 것은 다음과 같습니다

sum(df.index == 'g')

이 트릭을해야합니다

'g' in df.index

내가 찾던 것으로 참조하기 위해 ".values"메소드를 추가하여 값 또는 색인 내 존재 여부를 테스트 할 수 있습니다.

g in df.<your selected field>.values
g in df.index.values

간단한 목록을 얻거나 ndarray를 얻기 위해 ".values"를 추가하면 다른 파이썬 도구와 함께 "in"검사가 더 원활하게 실행됩니다. 그냥 사람들을 위해 그것을 던질 것이라고 생각했습니다.


다중 인덱스는 단일 인덱스와 약간 다르게 작동합니다. 다중 인덱스 데이터 프레임에 대한 몇 가지 방법이 있습니다.

df = pd.DataFrame({'col1': ['a', 'b','c', 'd'], 'col2': ['X','X','Y', 'Y'], 'col3': [1, 2, 3, 4]}, columns=['col1', 'col2', 'col3'])
df = df.set_index(['col1', 'col2'])

in df.index 단일 인덱스 값을 확인할 때만 첫 번째 수준에서 작동합니다.

'a' in df.index     # True
'X' in df.index     # False

df.index.levels다른 레벨을 확인하십시오 .

'a' in df.index.levels[0] # True
'X' in df.index.levels[1] # True

df.index인덱스 조합 튜플을 체크인하십시오 .

('a', 'X') in df.index  # True
('a', 'Y') in df.index  # False

df = pandas.DataFrame({'g':[1]}, index=['isStop'])

#df.loc['g']

if 'g' in df.index:
    print("find g")

if 'isStop' in df.index:
    print("find a") 

DataFrame 사용 : df_data

>>> df_data
  id   name  value
0  a  ampha      1
1  b   beta      2
2  c     ce      3

나는 시도했다 :

>>> getattr(df_data, 'value').isin([1]).any()
True
>>> getattr(df_data, 'value').isin(['1']).any()
True

그러나:

>>> 1 in getattr(df_data, 'value')
True
>>> '1' in getattr(df_data, 'value')
False

너무 재미있어 : D

참고 URL : https://stackoverflow.com/questions/23549231/check-if-a-value-exists-in-pandas-dataframe-index

반응형