전체 글242 [pandas] 일부만 %로 표기된 열을 float으로 바꿀 때 아래 시리즈 s는 일부만 %로 표기되어 있고 %로 표기된 부분은 문자열이 된다 import pandas as pd s = pd.Series(['1', 2, '300%']) s 0 1 1 2 2 300% dtype: object 이 s의 dtype을 float로 바꾸려면 %로 된 문자열 부분 때문에 그냥은 쉽지 않다 이럴 때는 아래와 같은 코드를 사용하면 된다 cond1 = s.astype('str').str.contains('%') s.mask(cond1, s.astype('str').str.replace('%', '').astype('float').div(100)).astype('float') output 0 1.0 1 2.0 2 3.0 dtype: float64 %외에도 문자열로 섞여있는 다른 값이 .. 2023. 7. 5. [pandas] map 시리즈나 인덱스의 데이터를 매퍼(주로 딕셔너리)로 매핑하는 함수 import pandas as pd s = pd.Series(['사과', '바나나', '바나나', '포도', '사과']) dict1 = {'사과' : 0, '바나나' : 1, '포도' : 2} s.map(dict1) output: 0 0 1 1 2 1 3 2 4 0 dtype: int64 s.map(func) 매퍼는 주로 딕셔너리가 많이 쓰이지만 딕셔너리와 똑같은 구조인 시리즈도 가능하다 또한 함수도 가능하다 2023. 6. 27. [pandas] round 데이터 프레임이나 시리즈를 반올림하는 함수 import pandas as pd data = [[1.025, 2.249], [3.923, 4.035], [5.418, 6.736]] df = pd.DataFrame(data, index=list('ABC'), columns=['col1', 'col2']) df.round(decimals=0) decimals : 소수점 자리수를 지정한다. 기본값은 0이고 소수점 첫째 자리에서 반올림을 수행한다. 0~4는 버림 6~9는 올림 5는 앞 숫자가 짝수라면 버리고 앞 숫자가 홀수라면 올린다 2023. 6. 26. [pandas] isna / isnull 데이터 프레임이나 시리즈의 누락된 값(null)을 확인하는 함수 null이면 True, 값이 존재하면 False를 반환한다. null : NaN, NaT, None 등 import pandas as pd s = pd.Series([float('nan'), 'B', 'C', float('nan'), 'E']) pandas 에서 isna 함수를 쓰는 이유 float('nan') == float('nan') False 놀랍게도 NaN == NaN이 False 이기 때문에 NaN을 찾으려면 isna 혹은 isnull 같은 함수를 써야 한다 반대로 notna, notnull 같은 함수는 null 을 False로 반환한다. isna 함수와 isnull 함수의 기능은 같다. notna, notnull 함수는 True.. 2023. 6. 26. [pandas] isin 각 셀의 값이 특정 배열에 포함되는지 여부로 True, False를 반환하는 함수 import pandas as pds = pd.Series(['A', 'B', 'C', 'D', 'E')] 2023. 6. 26. [pandas] 파일에서 데이터 프레임을 읽어올 때 공통된 열이름이 있을 때 해결책 csv파일이나 엑셀파일에서 데이터 프레임을 불러올 때 열 이름이 공통인 경우 넘버링을 해서 구분한다 그 때 넘버링이 되지 않기를 바랄 경우에 대한 해결책 실습을 위해 파일이 필요한데 열 이름이 공통인 파일을 제공하고 여러분이 다운받아서 실습해보는 것은 번거로우니 문자열을 csv파일처럼 읽는 방법을 사용하자 (https://kimpanda.tistory.com/137) import pandas as pd import io str1 = ''' A,B,C,A 1,2,3,4 ''' df = pd.read_csv(io.StringIO(str1)) df 위 df는 columns에 A가 두개있어서 두번째 A가 A.1로 구분되었다 이런 경우에 넘버링이 되지 않고 원래의 열 이름을 그대로 갖고 있기를 바라는 경우도 있을.. 2023. 6. 25. 이전 1 ··· 21 22 23 24 25 26 27 ··· 41 다음