전체 글(28)
-
[파이썬 오류] ValueError : cannot mask with non-boolean array containing na / nan values
def get_info(old_code, new_code): tmp = obj.origin[obj.origin['코드(관리번호)'].str.contains(old_code, case=False)] ...생략...위와 같이 데이터프레임에서 특정 값이 포함된 행을 가져오려 했을 때 발생했다. 이 오류는 컬럼에서 boolean 형식으로 나타낼 수 없는 값이 있을 때 생기는 오류다. 보통 NaN값이 이에 해당되는데, contains() 메서드에서 na=False 로 지정하여 NaN 값을 False로 처리하도록 지정해주면 된다. 아래는 수정한 코드이다. def get_info(old_code, new_code): tmp = obj.origin[obj.origin['코드(관리번호)']...
2023.04.07 -
[파이썬 오류] ValueError : Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
다음과 같이 info가 비었는지 안 비었는지 확인하여 제대로 읽어왔는지 보려고 했는데, 시리즈의 Truth Value가 모호하다는 오류를 만났다. Truth Value 란 참거짓을 나타낼 수 있는 값으로, 파이썬에서는 True와 False를 뜻한다. def get_info(old_code, new_code): tmp = obj.origin[obj.origin['코드(관리번호)'].str.contains(old_code, case=False, na=False)] cols = ['제조사', '반출(증)', '반환(증)', '현위치', '분류', '제조사', '모델명', '시리얼넘버', '자산관리번호'] info = tmp[cols] if info : 0 : ...이하 생략 ... Reference https..
2023.04.06 -
[파이썬 오류]TypeError : 'method' object is not subscriptable
업무 자동화를 위해 오랜만에 파이썬을 쓰다가 생소한 오류를 만났다.. 바로 'method' 객체는 subscriptable하지 않다~는.. 해당 에러는 method( ) 의 형식을 사용하는 메서드를 브라켓형식인 method\[ ]로 잘못 사용했을 때 나타나는 에러다. str.slice[ ] 를 str.slice( )로 바꿔주면 해결된다. 참고로, 인덱스를 콜론(:)으로 구분하는 것도 아니고 콤마(,)로 구분한다 ㅋㅋ 좀 더 자세히 알아보자면, Oxford 사전에 의하면, subscript란 프로그램에서 배열 요소 중 하나를 지정하기 위해 사용하는 symbol이라고 설명이 되어있다. 즉 subscriptable 은 인덱싱이나 슬라이스가 가능함을 뜻하는 것으로 이해하면 된다. Subscript COMPUTI..
2023.04.06 -
x64 Calling convention & Registers
x64 레지스터 register Lower 32bits Lower 16bits Lower 8bits status usage RAX EAX AX AL 휘발성 함수 리턴 값 저장 RCX ECX CX CL 휘발성 첫 번째 정수 인수, 반복문 카운터, 각종 연산의 시행 횟수 RDX EDX DX DL 휘발성 두 번째 정수 인수 R8 R8D R8W R8B 휘발성 세 번째 정수 인수 R9 R9D R9W R9B 휘발성 네 번째 정수 인수 RDI EDI DI DIL 비휘발성 데이터 목적지 포인터 RSI ESI SI SIL 비휘발성 데이터 원본 포인터 RBX EBX BX BL 비휘발성 별 역할 없음 RBP EBP BP BPL 비휘발성 프레임 포인터 RSP ESP SP SPL 비휘발성 스택 포인터 R10:R11 R10D:R..
2023.02.15 -
[DreamHack] rev-basic-3
main함수 딱 봐도 scanf인 함수가 입력값을 받아 sub_7FF6EF7D1000에서 입력값을 비교하고 있다. user_input은 원래 v4였는데 편의상 변수명을 바꿔놨다. sub_7FF6EF7D1000 24번 루프를 돌며 i와 input값을 xor한 값에 2i를 더한 값이 어떤 배열에 있는 한 바이트와 같은지 비교하고 있다. 알아보기 쉽게 수식으로 정리하자면 다음과 같다. i ^ input[i] + 2i 해당 배열을 더블클릭하면 박혀있는 데이터를 볼 수 있다. 저 값에서 역으로 2i을 빼주고 다시 xor하면 어떤 입력값을 줘야 하는지 계산할 수 있다. 코드는 다음과 같다. str = [0x49, 0x60, 0x67, 0x74, 0x63, 0x67, 0x42, 0x66, 0x80, 0x78, 0x6..
2023.02.15 -
Apache Spark job 종료
ps로 스파크 드라이버 조회 후 SIGTERM 보내기 ps -ef | grep spark | awk '{print $2 $12}'
2023.02.14