<jupyter_start><jupyter_text>13장 엑셀 파일 다루기  13.1 엑셀 파일을 읽고 쓰기  엑셀 파일의 데이터 읽기 **[13장: 346페이지]**<jupyter_code>import pandas as pd
df = pd.read_excel('C:/myPyCode/data/학생시험성적.xlsx')
df<jupyter_output><empty_output><jupyter_text>**[13장: 347페이지]**<jupyter_code>pd.read_excel('C:/myPyCode/data/학생시험성적.xlsx', sheet_name = 1)  #1번째 시트 출력<jupyter_output><empty_output><jupyter_text>**[13장: 347페이지]**<jupyter_code>pd.read_excel('C:/myPyCode/data/학생시험성적.xlsx', sheet_name = '2차시험')  # '2차시험' 이름의 시트 출력<jupyter_output><empty_output><jupyter_text>**[13장: 347 ~ 348페이지]**<jupyter_code>df = pd.read_excel('C:/myPyCode/data/학생시험성적.xlsx',sheet_name = '2차시험', index_col = 0)  # 0번째 컬럼을 인덱스로 사용
df
df = pd.read_excel('C:/myPyCode/data/학생시험성적.xlsx', sheet_name = '2차시험', index_col = '학생') # '학생'컬럼을 인덱스사용
df<jupyter_output><empty_output><jupyter_text>데이터를 엑셀 파일로 쓰기 **[13장: 349페이지]**<jupyter_code>import pandas as pd

excel_exam_data1 = {'학생': ['A', 'B', 'C', 'D', 'E', 'F'],
                    '국어': [80, 90, 95, 70, 75, 85],
                    '영어': [90, 95, 70, 85, 90, 95],
                    '수학': [85, 95, 75, 80, 85, 100]}         # 딕셔너리 데이터 생성
df1 = pd.DataFrame(excel_exam_data1,columns=['학생','국어','영어','수학'] )  # 데이터프레임 생성
df1<jupyter_output><empty_output><jupyter_text>**[13장: 350페이지]**<jupyter_code>excel_writer = pd.ExcelWriter('C:/myPyCode/data/학생시험성적2.xlsx', engine='xlsxwriter')  # ExcelWriter 객체 생성
df1.to_excel(excel_writer, index=False)   # 데이터프레임을 엑셀 시트에 쓰기
excel_writer.save()    # 파일 저장
pd.read_excel('C:/myPyCode/data/학생시험성적2.xlsx', sheet_name = 0, index_col = '학생')   # 저장된 파일 불러오기<jupyter_output><empty_output><jupyter_text>**[13장: 351페이지]**<jupyter_code>excel_writer2 = pd.ExcelWriter('C:/myPyCode/data/학생시험성적3.xlsx', engine='xlsxwriter')# 파일이름, 엔진을 선택하여 객체생성
df1.to_excel(excel_writer2, index=False, sheet_name='중간고사')  # 시트 이름 지정
excel_writer2.save()   # 저장
pd.read_excel('C:/myPyCode/data/학생시험성적3.xlsx', index_col=0, sheet_name='중간고사')  # 출력<jupyter_output><empty_output><jupyter_text>**[13장: 351페이지]**<jupyter_code>import pandas as pd

excel_exam_data2 = {'학생': ['A', 'B', 'C', 'D', 'E', 'F'],
                    '국어': [85, 95, 75, 80, 85, 100],
                    '영어': [80, 90, 95, 70, 75, 85],
                    '수학': [90, 95, 70, 85, 90, 95]}     # 딕셔너리 생성
df2 = pd.DataFrame(excel_exam_data2,columns=['학생','국어','영어','수학'] )  # 데이터프레임 생성
df2<jupyter_output><empty_output><jupyter_text>**[13장: 352페이지]**<jupyter_code>excel_writer3 = pd.ExcelWriter('C:/myPyCode/data/학생시험성적4.xlsx', engine='xlsxwriter')  # 객체 생성
df1.to_excel(excel_writer3, index=False, sheet_name='중간고사')     # df1을 중간고사 시트에 입력
df2.to_excel(excel_writer3, index=False, sheet_name='기말고사')     # df2를 기말고사 시트에 입력
excel_writer3.save()        # 저장
pd.read_excel('C:/myPyCode/data/학생시험성적4.xlsx', index_col=0, sheet_name='중간고사')  # 시트1 출력
pd.read_excel('C:/myPyCode/data/학생시험성적4.xlsx', index_col=0, sheet_name='기말고사')  # 시트2 출력<jupyter_output><empty_output><jupyter_text>13.2 엑셀 파일 통합하기  효율적인 데이터 처리를 위한 엑셀 데이터 구조  여러 개의 엑셀 파일 데이터를 통합하기 **[13장: 355페이지]**<jupyter_code>excel_data_files = ['C:/myPyCode/data/담당자별_판매량_Andy사원.xlsx',
                    'C:/myPyCode/data/담당자별_판매량_Becky사원.xlsx',
                    'C:/myPyCode/data/담당자별_판매량_Chris사원.xlsx']<jupyter_output><empty_output><jupyter_text>**[13장: 355페이지]**<jupyter_code>total_data = pd.DataFrame()   # 빈 데이터프레임 생성
print(type(total_data))
total_data<jupyter_output><class 'pandas.core.frame.DataFrame'><jupyter_text>**[13장: 355페이지]**<jupyter_code>import pandas as pd

for f in excel_data_files:
    df = pd.read_excel(f)
    total_data = total_data.append(df)

total_data<jupyter_output><empty_output><jupyter_text>**[13장: 356페이지]**<jupyter_code>import pandas as pd

total_data = pd.DataFrame()

for f in excel_data_files:
    df = pd.read_excel(f)
    total_data = total_data.append(df, ignore_index=True)   # 데이터프레임을 append할 때 인덱스를 무시함

total_data<jupyter_output><empty_output><jupyter_text>**[13장: 357페이지]**- glob 모듈의 glob()은 지정된 문자열에 대응이 되는 모든 파일과 디렉토리를 리스트로 반환- *은 길이와 상관없이 모든 문자열- ?는 한 글자로 된 모든 문자열<jupyter_code>import glob

glob.glob("C:/myPyCode/data/담당자별_판매량_*사원.xlsx")<jupyter_output><empty_output><jupyter_text>**[13장: 358페이지]**<jupyter_code>import glob
import pandas as pd

excel_data_files1 = glob.glob("C:/myPyCode/data/담당자별_판매량_*사원.xlsx")  # 해당 조건을 만족하는 파일 리스트 생성
total_data1 = pd.DataFrame()   # 빈 데이터프레임 생성

for f in excel_data_files1:
    df = pd.read_excel(f)       # n번째 파일명을 데이터프레임으로 생성
    total_data1 = total_data1.append(df, ignore_index=True)  # 생성된 데이터프레임을 append

total_data1<jupyter_output><empty_output><jupyter_text>통합 결과를 엑셀 파일로 저장하기 **[13장: 359페이지]**<jupyter_code>import glob
import pandas as pd

excel_file_name = 'C:/myPyCode/data/담당자별_판매량_통합.xlsx'    # 저장위치/파일이름 지정

excel_total_file_writer = pd.ExcelWriter(excel_file_name, engine='xlsxwriter')      # 객체 생성
total_data1.to_excel(excel_total_file_writer, index=False, sheet_name='담당자별_판매량_통합')  # 해당 시트에 데이터프레임 입력
excel_total_file_writer.save()   # 저장

glob.glob(excel_file_name)<jupyter_output><empty_output><jupyter_text>13.3 엑셀 파일로 읽어온 데이터 다루기  데이터를 추가하고 변경하기 **[13장: 360페이지]**<jupyter_code>import pandas as pd

df = pd.read_excel('C:/myPyCode/data/담당자별_판매량_Andy사원.xlsx')
df<jupyter_output><empty_output><jupyter_text>**[13장: 360페이지]**<jupyter_code>df.loc[2, '4분기']= 0
df<jupyter_output><empty_output><jupyter_text>**[13장: 361페이지]**<jupyter_code>df.loc[3, '제품명'] = '벨트'
df.loc[3, '담당자'] = 'A'
df.loc[3, '지역'] = '가'
df.loc[3, '1분기'] = 100
df.loc[3, '2분기'] = 150
df.loc[3, '3분기'] = 200
df.loc[3, '4분기'] = 250

df<jupyter_output><empty_output><jupyter_text>**[13장: 361페이지]**<jupyter_code>df['담당자'] = 'Andy'
df<jupyter_output><empty_output><jupyter_text>**[13장: 362페이지]**<jupyter_code>excel_file_name = 'C:/myPyCode/data/담당자별_판매량_Andy사원_new.xlsx'  # 파일 경로/이름 지정

new_excel_file = pd.ExcelWriter(excel_file_name, engine='xlsxwriter')   # 객체 생성
df.to_excel(new_excel_file, index=False)      # 시트에 데이터프레임 입력
new_excel_file.save()       # 저장

glob.glob(excel_file_name)<jupyter_output><empty_output><jupyter_text>여러 개의 엑셀 파일에서 데이터 수정하기 **[13장: 363페이지]**<jupyter_code>import re

file_name  = 'C:/myPyCode/data/담당자별_판매량_Andy사원.xlsx'

new_file_name = re.sub(".xlsx", "2.xlsx", file_name)

print('변경전:', file_name)
print('변경후:', new_file_name)<jupyter_output>변경전: C:/myPyCode/data/담당자별_판매량_Andy사원.xlsx
변경후: C:/myPyCode/data/담당자별_판매량_Andy사원2.xlsx<jupyter_text>**[13장: 363 ~ 364페이지]**<jupyter_code>import glob
import re
import pandas as pd

# 원하는 문자열이 포함된 파일을 검색해 리스트를 할당한다.
excel_data_files1 = glob.glob("C:/myPyCode/data/담당자별_판매량_*사원.xlsx")
print(excel_data_files1)

# 리스트에 있는 엑셀 파일만큼 반복 수행한다.
for f in excel_data_files1:
    # 엑셀 파일에서 DataFrame 형식으로 데이터 가져온다.
    df = pd.read_excel(f) 
    
    # 특정 열의 값을 변경한다.    
    if(df.loc[1, '담당자']=='A'):
        df['담당자']='Andy'
    elif(df.loc[1, '담당자']=='B'):
        df['담당자']='Becky'
    elif(df.loc[1, '담당자']=='C'):
        df['담당자']='Chris'        
    
    # 엑셀 파일 이름에서 지정된 문자열 패턴을 찾아서 파일명을 변경한다.
    f_new = re.sub(".xlsx", "2.xlsx", f)
    print(f_new)
    
    # 수정된 데이터를 새로운 이름의 엑셀 파일로 저장한다.
    new_excel_file = pd.ExcelWriter(f_new, engine='xlsxwriter')
    df.to_excel(new_excel_file, index=False)
    new_excel_file.save()<jupyter_output>['C:/myPyCode/data\\담당자별_판매량_Andy사원.xlsx', 'C:/myPyCode/data\\담당자별_판매량_Becky사원.xlsx', 'C:/myPyCode/data\\담당자별_판매량_Chris사원.xlsx']
C:/myPyCode/data\담당자별_판매량_Andy사원2.xlsx
C:/myPyCode/data\담당자별_판매량_Becky사원2.xlsx
C:/myPyCode/data\담당자별_판매량_Chris사원2.xlsx<jupyter_text>**[13장: 364페이지]**<jupyter_code>glob.glob("C:/myPyCode/data/담당자별_판매량_*사원?.xlsx")<jupyter_output><empty_output><jupyter_text>엑셀의 필터 기능 수행하기 **[13장: 366페이지]**<jupyter_code>import pandas as pd

df = pd.read_excel('C:/myPyCode/data/담당자별_판매량_통합.xlsx')
df<jupyter_output><empty_output><jupyter_text>**[13장: 367페이지]**<jupyter_code>df['제품명']   # 제품명 컬럼 출력<jupyter_output><empty_output><jupyter_text>**[13장: 367페이지]**<jupyter_code>df['제품명'] == '핸드백'   # 비교연산자로 일치하면 True, 불일치하면 False<jupyter_output><empty_output><jupyter_text>**[13장: 368페이지]**<jupyter_code>handbag = df[df['제품명'] == '핸드백']  # 제품명 컬럼이 True(핸드백)인 열만 출력
handbag<jupyter_output><empty_output><jupyter_text>**[13장: 368페이지]**<jupyter_code>print(df['제품명'] == '핸드백', '\n')
print(df['제품명'].isin(['핸드백']))   # 동일한 비교연산
import pandas as pd

df = pd.read_excel('C:/myPyCode/data/담당자별_판매량_통합.xlsx')
handbag1 = df[df['제품명'].isin(['핸드백'])]   # 제품명 컬럼이 핸드백(True)인 열만 출력 (위와 동일)
handbag1<jupyter_output><empty_output><jupyter_text>**[13장: 370페이지]**<jupyter_code>df[(df['제품명']== '구두') | (df['제품명']== '핸드백')]  # A|B, A 이거나 B<jupyter_output><empty_output><jupyter_text>**[13장: 370페이지]**<jupyter_code>df[df['제품명'].isin(['구두', '핸드백'])]    # 위와 동일<jupyter_output><empty_output><jupyter_text>조건을 설정해 원하는 행만 선택하기 **[13장: 371페이지]**<jupyter_code>df[(df['3분기'] >= 250)]<jupyter_output><empty_output><jupyter_text>**[13장: 371페이지]**<jupyter_code>df[(df['제품명'] == '핸드백') & (df['3분기'] >= 350)]  #  & 두가지 조건 모두 만족시키는 행 출력<jupyter_output><empty_output><jupyter_text>원하는 열만 선택하기 **[13장: 372페이지]**<jupyter_code>import pandas as pd

df = pd.read_excel('C:/myPyCode/data/담당자별_판매량_Andy사원.xlsx')
df<jupyter_output><empty_output><jupyter_text>**[13장: 372페이지]**<jupyter_code>df[['제품명','1분기', '2분기','3분기', '4분기']]<jupyter_output><empty_output><jupyter_text>**[13장: 373페이지]**<jupyter_code>df.iloc[:,[0,3,4,5,6]]   # 전체 행, 선택한 열<jupyter_output><empty_output><jupyter_text>**[13장: 373페이지]**<jupyter_code>df.iloc[[0,2],:]   # 선택한 행, 전체 열<jupyter_output><empty_output><jupyter_text>엑셀 데이터 계산하기 **[13장: 375페이지]**<jupyter_code>import pandas as pd

df = pd.read_excel('C:/myPyCode/data/담당자별_판매량_통합.xlsx')

handbag = df[(df['제품명']== '핸드백')]    # 제품명이 핸드백인 열만 출력
handbag<jupyter_output><empty_output><jupyter_text>**[13장: 376페이지]**<jupyter_code>handbag.sum(axis=1)  # 행(가로)방향 합계 = 연간 판매량<jupyter_output><empty_output><jupyter_text>**[13장: 376페이지]**<jupyter_code>handbag_sum = pd.DataFrame(handbag.sum(axis=1), columns = ['연간판매량'])  # 계산값을 데이터프레임으로 생성
handbag_sum<jupyter_output><empty_output><jupyter_text>**[13장: 377페이지]**<jupyter_code>handbag_total = handbag.join(handbag_sum)  # 새로운 컬럼으로 삽입해서 새로운 데이터프레임 생성
handbag_total<jupyter_output><empty_output><jupyter_text>**[13장: 378페이지]**<jupyter_code>handbag_total.sort_values(by='연간판매량', ascending=True)  # 연간판매량 기준으로 오름차순 정렬<jupyter_output><empty_output><jupyter_text>**[13장: 379페이지]**<jupyter_code>handbag_total.sort_values(by='연간판매량', ascending=False)  # 내림차순 정렬<jupyter_output><empty_output><jupyter_text>열 데이터의 합계 구하기 **[13장: 380페이지]**<jupyter_code>handbag_total.sum()  # 열(세로)방향 합계<jupyter_output><empty_output><jupyter_text>**[13장: 380페이지]**<jupyter_code>handbag_sum2 = pd.DataFrame(handbag_total.sum(), columns=['합계'])  # 계산값을 새로운 데이터프레임으로 생성
handbag_sum2<jupyter_output><empty_output><jupyter_text>**[13장: 381페이지]**<jupyter_code>handbag_sum2.T   # 전치
handbag_total2  = handbag_total.append(handbag_sum2.T)
handbag_total2<jupyter_output><empty_output><jupyter_text>**[13장: 381페이지]**<jupyter_code>handbag_total2.loc['합계', '제품명'] = '핸드백'
handbag_total2.loc['합계', '담당자'] = '전체'
handbag_total2.loc['합계', '지역'] = '전체'     # 데이터값 수정

handbag_total2<jupyter_output><empty_output><jupyter_text>**[13장: 381 ~ 382페이지]**<jupyter_code>import pandas as pd

# 엑셀 파일을 pandas의 DataFrame 형식으로 읽어온다.
df = pd.read_excel('C:/myPyCode/data/담당자별_판매량_통합.xlsx') 

# 제품명 열에서 핸드백이 있는 행만 선택한다.
product_name = '핸드백'
handbag = df[(df['제품명']== product_name)]

# 행별로 합계를 구하고 마지막 열 다음에 추가한다.
handbag_sum = pd.DataFrame(handbag.sum(axis=1), columns = ['연간판매량'])
handbag_total = handbag.join(handbag_sum)

# 열별로 합해 분기별 합계와 연간판매량 합계를 구하고 마지막 행 다음에 추가한다.
handbag_sum2 = pd.DataFrame(handbag_total.sum(), columns=['합계'])
handbag_total2  = handbag_total.append(handbag_sum2.T)

# 지정된 항목의 문자열을 변경한다.
handbag_total2.loc['합계', '제품명'] = product_name
handbag_total2.loc['합계', '담당자'] = '전체'
handbag_total2.loc['합계', '지역'] = '전체'

# 결과를 확인한다.
handbag_total2<jupyter_output><empty_output><jupyter_text>13.4 엑셀 데이터의 시각화  그래프를 엑셀 파일에 넣기 **[13장: 384페이지]**<jupyter_code>import matplotlib.pyplot as plt
import pandas as pd

sales = {'시간': [9, 10, 11, 12, 13, 14, 15],
         '제품1': [10, 15, 12, 11, 12, 14, 13],
         '제품2': [9, 11, 14, 12, 13, 10, 12]}   # 딕셔너리 생성

df = pd.DataFrame(sales, index = sales['시간'], columns = ['제품1', '제품2'])  # 데이터프레임 생성
df.index.name = '시간' #index 라벨 추가

df<jupyter_output><empty_output><jupyter_text>**[13장: 385페이지]**<jupyter_code>import matplotlib
import pandas as pd

matplotlib.rcParams['font.family'] = 'Malgun Gothic'  # 한글 글씨체 '맑은 고딕'으로 설정 
matplotlib.rcParams['axes.unicode_minus'] = False     # -폰드 깨짐 방지

product_plot = df.plot(grid = True, style = ['-*', '-o'], title='시간대별 생산량')
product_plot.set_ylabel("생산량")

image_file = 'C:/myPyCode/figures/fig_for_excel1.png' # 이미지 파일 경로 및 이름
plt.savefig(image_file, dpi = 400) # 그래프를 이미지 파일로 저장

plt.show()<jupyter_output><empty_output><jupyter_text>**[13장: 386페이지]**<jupyter_code>import pandas as pd

# (1) pandas의 ExcelWriter 객체 생성
excel_file = 'C:/myPyCode/data/data_image_to_excel.xlsx'
excel_writer = pd.ExcelWriter(excel_file, engine='xlsxwriter')

# (2) DataFrame 데이터를 지정된 엑셀 시트(Sheet)에 쓰기
df.to_excel(excel_writer, index=True, sheet_name='Sheet1')

# (3) ExcelWriter 객체에서 워크시트(worksheet) 객체 생성
worksheet = excel_writer.sheets['Sheet1']

# (4) 워크시트에 차트가 들어갈 위치를 지정해 이미지 넣기
worksheet.insert_image('D2', image_file, {'x_scale': 0.7, 'y_scale': 0.7})
# worksheet.insert_image(1, 3, image_file, {'x_scale': 0.7, 'y_scale': 0.7})

# (5) ExcelWriter 객체를 닫고 엑셀 파일 출력
excel_writer.save()<jupyter_output><empty_output><jupyter_text>엑셀 차트 만들기 **[13장: 388 ~ 389페이지]**<jupyter_code># (1) pandas의 ExcelWriter 객체 생성
excel_chart = pd.ExcelWriter('C:/myPyCode/data/data_chart_in_excel.xlsx', engine='xlsxwriter')

# (2) DataFrame 데이터를 지정된 엑셀 시트(Sheet)에 쓰기
df.to_excel(excel_chart, index=True, sheet_name='Sheet1')

# (3) ExcelWriter 객체에서 워크북(workbook)과 워크시트(worksheet) 객체 생성
workbook  = excel_chart.book
worksheet = excel_chart.sheets['Sheet1']

# (4) 차트 객체 생성(원하는 차트의 종류 지정)
chart = workbook.add_chart({'type': 'line'})

# (5) 차트 생성을 위한 데이터값의 범위 지정 
chart.add_series({'values': '=Sheet1!$B$2:$B$8'})
chart.add_series({'values': '=Sheet1!$C$2:$C$8'})

# (6) 워크시트에 차트가 들어갈 위치를 지정해 차트 넣기
worksheet.insert_chart('D2', chart)

# (7) ExcelWriter 객체를 닫고 엑셀 파일 출력
excel_chart.save()<jupyter_output><empty_output><jupyter_text>**[13장: 390페이지]**<jupyter_code># (5) 차트 생성을 위한 데이터값의 범위 지정
chart.add_series({'values': '=Sheet1!$B$2:$B$8', 
                  'categories': '=Sheet1!$A$2:$A$8',
                  'name': '=Sheet1!$B$1',})

chart.add_series({'values': '=Sheet1!$C$2:$C$8', 
                  'categories': '=Sheet1!$A$2:$A$8',
                  'name': '=Sheet1!$C$1',})<jupyter_output><empty_output><jupyter_text>**[13장: 390페이지]**<jupyter_code># (5-1) 엑셀 차트에 x, y축 라벨과 제목 추가
chart.set_title ({'name': '시간대별 생산량'})
chart.set_x_axis({'name': '시간'})
chart.set_y_axis({'name': '생산량'})<jupyter_output><empty_output><jupyter_text>**[13장: 391 ~ 392페이지]**<jupyter_code># (1) pandas의 ExcelWriter 객체 생성
excel_chart = pd.ExcelWriter('C:/myPyCode/data/data_chart_in_excel2.xlsx', engine='xlsxwriter')

# (2) DataFrame 데이터를 지정된 엑셀 시트(Sheet)에 쓰기
df.to_excel(excel_chart, index=True, sheet_name='Sheet1')

# (3) ExcelWriter 객체에서 워크북(workbook)과 워크시트(worksheet) 객체 생성
workbook  = excel_chart.book
worksheet = excel_chart.sheets['Sheet1']

# (4) 차트 객체 생성 (원하는 차트의 종류 지정)
chart = workbook.add_chart({'type': 'line'})

# (5) 차트 생성을 위한 데이터값의 범위 지정
chart.add_series({'values': '=Sheet1!$B$2:$B$8', 
                  'categories': '=Sheet1!$A$2:$A$8',
                  'name': '=Sheet1!$B$1'})
chart.add_series({'values': '=Sheet1!$C$2:$C$8', 
                  'categories': '=Sheet1!$A$2:$A$8',
                  'name': '=Sheet1!$C$1'})

# (5-1) 엑셀 차트에 x, y축 라벨과 제목 추가
chart.set_title ({'name': '시간대별 생산량'})
chart.set_x_axis({'name': '시간'})
chart.set_y_axis({'name': '생산량'})

# (6) 워크시트에 차트가 들어갈 위치를 지정해 차트 넣기
worksheet.insert_chart('D2', chart)

# (7)  ExcelWriter 객체를 닫고 엑셀 파일 출력
excel_chart.save()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.17720330495743616, 'fraction_numerical': 0.039809714571857786, 'mean_word_length': 5.769915254237288, 'pattern_counts': {'":': 0, '<': 219, '<?xml version=': 0, '>': 221, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 9, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '55', 'dir': 'jupyter-structured-clean-dedup', 'id': '274118', 'license': 'MIT', 'n_tokens_mistral': 9402, 'n_tokens_neox': 10828, 'n_words': 1155, 'path': 'Chapter_13_Working_with_excel.ipynb', 'repo_name': 'Dojun-nlp/python_basic', 'size': '15976'}