본문 바로가기

판다스168

[pandas] resample 시간의 흐름에 따라 그룹화해서 함수를 적용하는 함수 import pandas as pd data = {'날짜': ['2023-01-01', '2023-01-15', '2023-01-30', '2023-01-31', '2023-02-02', '2023-02-05'], '금액': [10000, 20000, 30000, 40000, 50000, 60000]} df = pd.DataFrame(data) df['날짜'] = pd.to_datetime(df['날짜']) df.resample('M', on='날짜')['금액'].cumsum() resample 함수의 주요 매개변수(parameter)와 인수(argument), 기본값(default) df.resample(rule, on=None, level=None,.. 2023. 8. 21.
[pandas] cumcount 그룹으로 나누어 순번을 매기는 함수. 반드시 그룹화와 함께 사용한다. excel의 countif와 유사하다 import pandas as pd df = pd.DataFrame({'제품': ['A', 'B', 'B', 'A', 'C', 'A'], '판매량': [10, 20, 30, 40, 50, 60]}) ascending(True 또는 False / 기본값은 True) 오름차순 혹은 내림차순으로 순번을 부여할 것을 지정하는 매개변수. 기본값은 True이며 오름차순이고 위에서 순번을 부여한다.(순번의 시작은 0) 유튜브에서 판다스 강의 중입니다 https://www.youtube.com/@KimPandas 2023. 8. 17.
[pandas] 판다스의 KeyError 강의(1) 판다스의 KeyError는 99%의 경우 데이터 프레임에 해당 열이 없기 때문에 발생합니다.그리고 이 글을 읽는 여러분도 99%에 해당할 것입니다.그래서 이 시리즈를 다 읽으시면 대부분은 본인의 에러를 해결하실 수 있을 겁니다.   판다스의 KeyError 시리즈 판다스의 KeyError (1) : KeyError 기본편  ← 이번 포스팅판다스의 KeyError (2) : 판다스의 코드를 chain method로 사용할 때의 KeyError 실습을 위해 다음 코드를 실행해 보세요 import pandas as pddf1 = pd.DataFrame({'col1': [4, 2, 0, 5], 'col2': [3, 0, 4, 3]}) df1 이 df1은 col1과 col2라는 열을 가지고 있습니다.이 때 존재하.. 2023. 8. 8.
[pandas] set과 frozenset의 차이 둘다 집합의 개념이고 중복된 value를 허용하지 않는 공통점이 있다 다만 set은 mutable하고 frozenset은 immutable하다. (이 관계는 list와 tuple의 관계와 같다) 그래서 set은 딕셔너리의 key가 될 수 없고, frozenset은 딕셔너리의 key가 될 수 있다  {set((1, 2, 2, 3)) : 'A'} TypeError: unhashable type: 'set' set은 mutable 하기에 해시할 수 없는 자료형이라 딕셔너리의 key가 될 수 없다  {frozenset((1, 2, 2, 3)) : 'A'} 위 코드는 아래를 반환한다{frozenset({1, 2, 3}): 'A'} 집합의 성격을 갖고 있기에 중복된 value인 2는 하나만 갖게 된다 set이 딕셔.. 2023. 8. 7.
[pandas] 특정 열의 값으로 데이터 프레임 나눠서 리스트로 만들기 아래의 예제를 보자 import pandas as pd data = {'종류':['사과', '사과', '귤', '사과', '바나나', '바나나'], '판매량' : [10, 20, 30, 40, 50, 60]} df = pd.DataFrame(data) df 이 df를 종류의 값으로 나눠 사과, 귤, 바나나의 데이터 프레임을 분리하고 싶다. 이것을 분리해 리스트(dfs)에 담아보자 dfs = [df for key, df in df.groupby('종류')] 확인을 위해 dfs[0]를 출력해보자 귤의 데이터 프레임을 얻었다. 혹은 아래와 같은 코드로도 가능하다 g = df.groupby('종류') dfs = [g.get_group(x) for x in g.groups] 유튜브에서 판다스 강의 중입니다 htt.. 2023. 8. 6.
[pandas] 정규표현식에서 그룹명을 지정하기 다음과 같은 시리즈 s가 있다 import pandas as pd s = pd.Series(['AAAAA-BB-CCCCCC-DD-EEE', 'CCCCCC-AA-BBB-DD-EEE']) s 0 AAAAA-BB-CCCCCC-DD-EEE 1 CCCCCC-AA-BBB-DD-EEE dtype: object s에서 A-와 그 다음에 존재하는 첫번째 - 사이의 문자열만 추출해보자 첫째 행에서는 BB를 추출하고 두번재 행에서는 BBB를 추출해야 한다 정규 표현식을 이용해 다음과 같이 추출할 수 있다 s.str.extract(r'A-(.*?)-') 이 때 정규표현식으로 그룹명을 지정하면 column의 이름이 바뀐다 그룹명을 keyword로 작성해보자 s.str.extract(r'A-(?P.*?)-') 열 이름이 keyw.. 2023. 8. 6.