강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của parkhyungbin1613
parkhyungbin1613

câu hỏi đã được viết

Phân tích và xử lý dữ liệu với Python pandas

조건에 따른 데이터프레임 수정 방법이 가능한지, 어떤 방식으로 가능한지 궁금해요.

Viết

·

356

0

from pandas import DataFrame as df
과자목록1 = ['초코-파이','몽-쉘','빼빼로','호두파이','별-사탕']
과자목록2 = ['초코-파이','몽-쉘','바나나킥','땅콩파이','못난감자','초코칩쿠키','엄마손파이']
가격1 = ['500', '1000', '700', '800', '600']
가격2 = ['550', '1500', '750', '800', '600','500','400']

df1 = df(data={'과자': 과자목록1, '비고' : 0})
print(df1)

df2 = df(data={'과자': 과자목록2,'가격':가격2})
print(df2)

---------------------------

 

위와 같이 코드를 입력하였을시 사진과 같이 출력이 됩니다.

이 경우에 기능 구현이 가능한지에 대해 질문 드리고자 합니다.

1. 중간중간 섞여있는 -를 제거하는 방법이 있나요? 혹은 -를 .으로 바꿀수 있나요?

        - 파이썬 공부할때 몇번째 순서에 있는 값을 변경하는 인덱싱/슬라이싱은 본적이 있으나

          아예 무조건적으로 원하는 문자열을 전체 다 바꾸거나 지우는 기능이 있는지 궁금합니다.

2. 이 중에서 df1과 df2에 공통적으로 '초코-파이' 와 '몽-쉘' 이라는 값이 있습니다.

     만일 df1과 df2에 동일한 과자가 있을 때, df2의 가격이 df1의 비고에 들어갈 수 있게 할 수 있나요??

     (엑셀의 vlookup 기능(+ sumif기능도) 이 판다스에서도 가능한지 궁금합니다.)

강의를 수강하며 엑셀파일에 원하는 값을 추출하여 기본적인 전처리는 할 수 있게 되었는데

좀 더 제가 원하는 값만 추출하고 가공하는 기능에서 많이 막혀 질문드립니다.

답변 부탁드립니다. 감사합니다.

pandaspython

Câu trả lời 1

0

Kyeongrok Kim님의 프로필 이미지
Kyeongrok Kim
Người chia sẻ kiến thức

1.
- 빼는건 아래와 같이 해보세요.

과자목록1 = [
'초코-파이','몽-쉘','빼빼로','호두파이','별-사탕']

replaced = [cracker.replace(
'-', '') for cracker in 과자목록1]
print(replaced)

결과
['초코파이', '몽쉘', '빼빼로', '호두파이', '별사탕']

일단은 .replace()를 쓰시면 됩니다.

2.
import pandas as pd
from pandas import DataFrame as df
과자목록1 = ['초코-파이','몽-쉘','빼빼로','호두파이','별-사탕']
과자목록2 = ['초코-파이','몽-쉘','바나나킥','땅콩파이','못난감자','초코칩쿠키','엄마손파이']
가격1 = ['500', '1000', '700', '800', '600']
가격2 = ['550', '1500', '750', '800', '600','500','400']

df1 = df(data={'과자': 과자목록1, '비고' : 0})
print(df1)

df2 = df(data={'과자': 과자목록2,'가격':가격2})
print(df2)

df_merged = pd.merge(df1, df2, how='right', on='과자')
print(df_merged)


일단 이렇게 해보세요. 강의에서 배운 merge()라는 기능을 활용하면 되는데 강의에서 추가된 점은
how='right'라는게 추가 된것입니다.
db에 join이라는 개념을 이해 하시면 좋을 것 같습니다.

https://krksap.tistory.com/480
위 포스트를 참고 하시구요

위의 경우는 right join이라서 how='right'가 들어갔습니다. 기본은 inner join입니다.

Hình ảnh hồ sơ của parkhyungbin1613
parkhyungbin1613

câu hỏi đã được viết

Đặt câu hỏi