파이썬으로 엑셀 데이터 추출 두번째관문

조회수 631회
 for filename in name_list:
        df = pd.read_csv('{}'.format(filename), encoding = 'euc-kr')
        df_boolean = df == '매출액'
        x = df_boolean.sum(axis=1).values.argmax()
        y = df_boolean.sum(axis=0).values.argmax()
        num = df.iloc[x, y+1]
        print(filename[7:14], num)
out

2011.12 43214858
2012.12 49334873
2013.12 53692406
2014.12 57334440
2015.12 58540389
2016.12 60289581
2017.12  
2018.12  
2019.12  

이렇게 결과값이 나왔습니다. 제가 만들고자 하는거는 제가 원하는 값의 위치를 찾은 후 값을 프린트 하는 것인데요 보다시피 df == ' '을쓰게되면 정확한 이름을 쓰지않으면 2017, 2018, 2019처럼 공백이 나옵니다. 어떤 방법을 시도해 봐야할까요?

이렇게 되서 다른 코드를 작성해 봤습니다

for filename in name_list:
        book = openpyxl.load_workbook(filename)
        sheet = book.worksheets[0]
    def findExistString(searchString, text):
        if searchString in text: return True
        else: return False
    def findNonExistString(searchString, text):
        if searchString in text: return False
        else: return True
    for row in sheet.rows:
        if findExistString("매출액", row[1].value):
                print(filename[7:14], row[2].value)

OUT

2011.12 43214858
2011.12 41894293
2011.12 109000
2011.12 1211565
2012.12 49334873
2012.12 47413257
2012.12 71927
2012.12 1548685

이렇게 매출액이라는 문자를 포함한 값 네개가 다 추출됩니다

첫번째 value 만 뽑는 것이 저의 목표입니다 어떻게 하면 좋을까요??

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 마지막 if문에서 print 하신 내용 다음에 break 하시면 될거같아요. 조건절 참일 경우에 for row in sheet.rows 를 멈추면 다음 매출액이라는 것에 대해서 검사하지 않겟죠 김호원 2020.6.17 13:24
  • 아 정말감사합니다!! 해결됐습니다!!!!!!!!!!!!!!!!정정정말 감사드려요! 알 수 없는 사용자 2020.6.18 10:03

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)