파이썬 for문 질문이요!
339
작성한 질문수 1

궁금한게 저기서 i와 j가 동일한 행을 뽑고 싶은데
해당하는 df전체 열을 뽑고 싶으면 코드를 어떻게 짜야할까요?
도와주세요..
답변 3
1
지나가다 조심스레 댓글 남겨봅니다.파이썬 데이터프레임 자료형은 브로드캐스팅이나, 배치 연산이 잘 되어 있어 가급적 for문을 쓰지 않는 걸 추천드립니다.
pythonic 하지는 않지만 pandastic 하다고 해야 할까요...하여튼~
첫 번째 방법 : .isin()
판다스 문법 중 isin이라는 메서드가 있는데요.아래처럼 사용할 수 있습니다.
df 의 행들 중 노선번호 칼럼의 값이 bus_name["버스번호"] 에 들어있는 행만 필터링했습니다.# 방법 1 df2 = df[df["노선번호"].isin(bus_name["버스번호"])] df2두 번째 방법 : iterrows()
for문으로도 처리는 가능한데요.판다스 코드를 짜는 도중에... for문 밖에 방법이 떠오르지 않는다면
챗지피티 바로 켜서 물어보시는 걸 추천드립니다..

# 방법 2 rows = [] for _, row in df.iterrows(): if row["노선번호"] in bus_name['버스번호'].values: rows.append(row) df2 = pd.DataFrame(rows) df2판다스가 묻지 않은(?) 순수한 for문을 쓰고 싶으시다면아래처럼도 해볼 수 있겠습니다.df2 = pd.DataFrame() for i in range(len(df)): if df.iloc[i]["노선번호"] in bus_name["버스번호"].values: df2 = pd.concat([df2, df.iloc[[i]]], axis=0, ignore_index=True) df2
세 번째 방법 : apply
엄청나게 효율적인 건 아니지만, 범용으로 사용하기 참 좋은 apply를 써보면# 방법3 : apply & lambda df2 = df[df['노선번호'].apply(lambda x: x in bus_name['버스번호'].values)] df2
(isin에 비할 바는 아니지만) 코드가 뭔가 짧으면서 리스트컴프리헨션스럽고.. 개인적으로 참 좋아하는 기능입니다.도움이 되었길 바랍니다^^
1
안녕하세요, 인프런 AI 인턴입니다.
님의 질문에 대한 답변입니다.
파이썬DataFrame에서 특정 조건에 맞는 행 전체를 뽑고 싶을 때는 보통 해당 조건을 만족하는 행을 필터링하는 방법을 사용합니다. 질문에서 i와 j가 동일한 값을 가지는 행을 뽑고 싶다고 하셨으므로, 두 컬럼(노선번호와 버스번호)이 일치하는 조건으로 필터링 해보겠습니다.
예를 들어, df가 DataFrame이고, bus_name이 다른 Python 객체일 때, 두 객체의 ‘노선번호’와 ‘버스번호’가 일치하는 행을 뽑으려면 아래와 같은 코드를 사용할 수 있습니다. 먼저, 두 데이터의 조건을 비교하여 일치하는 경우만 필터링해야 합니다.
하지만, 주어진 정보만으로는 bus_name 객체의 세부 구조를 정확히 알 수 없어, 정확한 코드 작성은 어렵습니다. bus_name이 딕셔너리나 다른 DataFrame인 경우 접근 방식이 다를 수 있기 때문입니다. 그래도 기본적인 아이디어를 제공하겠습니다.
DataFrame df의 ‘노선번호’ 컬럼과 bus_name의 ‘버스번호’를 비교하는 일반적인 아이디어는 다음과 같습니다:
for i in df['노선번호']:
if i in bus_name['버스번호']: # 이 부분은 bus_name의 구조에 따라 조정 필요
# 조건을 만족하는 행을 출력하거나 다른 작업 수행
print(df[df['노선번호'] == i])
위 코드는 df의 ‘노선번호’가 bus_name의 ‘버스번호’에 포함되어 있는지 확인하고, 만약 그렇다면 해당하는 df의 행 전체를 출력합니다. bus_name의 실제 구조에 따라 if i in bus_name['버스번호']: 이 부분의 조건문은 수정이 필요할 수 있습니다.
더 정확한 도움을 받고 싶으시다면 bus_name 객체의 정확한 구조나 타입(예를 들어, DataFrame, 리스트, 딕셔너리 등)에 대한 정보를 추가로 제공해 주세요.
0
Hey guys, having a bit of a coding nightmare here! Trying to loop through some data in Python, but it's acting like a possessed animatronic. Anyone experienced similar issues? Getting vibes reminiscent of trying to survive a night at Freddy Fazbear's Pizza, only with more semicolons. Any quick tips to debug before I completely lose it? Perhaps a Fnaf themed solution is in order?
한국투자 증권
0
7
1
52번 강의 질문입니다.
0
4
1
https://youtu.be/ziTLbsE9Cbc 유튜브 노션 링크 권한 부탁드립니다.
0
5
1
Breadth (등락 비율) 분석
0
13
1
교육자료가 너무 오래되어서 지시한대로 진행하려 해도 안됩니다.
0
7
1
작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?
0
17
1
26 .강의 프롬프트와 프롬프트파일(part3) 내용이 차이가 있어요.
0
21
2
작업형 1 -연습문제 4-6
0
21
1
구글 그래피티 마켓 오류...?!
0
29
2
디스코드 소통창구는 없어졌나요 ??
0
31
2
FOREIGN KEY 정리하기, 영상대로 SQL코드 복붙해도 안되요.
0
19
1
모델 서빙과 관련된 강좌 출시 예정된 바가 있으신지 여쭤봅니다!
0
24
2
모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.
0
19
2
20번강좌에 대한 질문입니다.
0
25
2
6-6
0
29
1
작업형 1 유형 부분
0
30
2
수강평 이벤트
0
26
2
작업형 1 (삭제예정, 구 버전)
0
44
2
강의노트는 어디있나요?
0
21
1
노션 학습 자료 권한 요청
0
27
2
수강기간 연장 문의드립니다.
0
29
1
2유형 레이블 인코딩 VS 원핫 인코딩
0
33
3
part2강의 문의사항입니다.
0
36
2
수강기간 연장 문의드립니다.
0
33
1





