Python/Pandas&Numpy

pandas Tricks_05 & 06👉🏻 'Create a DataFrame from the clipboard & Split a DataFrame into 2 random subsets' (Kevin by DataSchool)

metamong 2022. 3. 30.

Q05) 빨리 한 dataframe을 만들고 싶을 때, 특히 연속하는 숫자, 문자 등 여러 일련의 data를 복붙해서 df로 만들고 싶다면?

A) 👇 read_clipboard() 사용!

 

pd.read_clipboard()

 

◈ read_clipboard docu ◈

https://pandas.pydata.org/docs/reference/api/pandas.read_clipboard.html

 

1> 원하는 일련의 표를 Google SpreadSheet나 Excel에 만든다

 

더보기
예시) Excel에서 data를 입력함

 

2> Ctrl + C!

 

3> read_clipboard() 입력하면 끝!

 

df = pd.read_clipboard()

 

4> 완성!

 index는 알아서 0부터 생성

→ dtypes 결과 data의 속성에 맞게 자동적으로 dtype을 결정해준다 (해당 예의 경우 알아서 int64형으로 배치해줌)

→ 주의) reproducible한 work에서는 재생성이 불가한 case이므로 read_clipboard()는 비추

 

더보기
dataframe 완성

 


Q06) dataframe을 두 part로 쪼개고 싶은데 (여기서 랜덤으로 나누고 싶음) 정해진 분량을 가진 dataframe들로 쪼갤 수는 없을까?

A) 👇 dataframe의 sample method 사용!

 

◈ sample docu 

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sample.html

 

 random_state 설정 (for reproducibility)

 

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ignore_index=False)

 

len(df) #a
given_frac = #float number

df_1 = df.sample(frac= given_frac, random_state=1234)
df_2 = df.drop(df_1.index)

len(df_1) + len(df_2) #a

 

1> sample method에서 나누고 싶은 비율을 frac 인자에 집어넣어 df_1을 생성

2> 전체 df에서 df_1의 index 삭제, 즉 df_1 data만 뺀 나머지는 df_2

 

(※ 주의) index가 not unique할 경우 random하게 섞이지 않음)

 

- read_clipboard & sample로 두 가지 의문점 해결 👍 -


* 출처) https://youtu.be/RlIiVeig3hc

댓글