파이썬 DataFrame에서 특정 값 위치(행 or 열)와 특정 값 개수를 각 변수에 저장 하는 방법 이 있을까요??
조회수 559회
안녕하세요. 파이썬 dataframe 학습중인 파이썬 초보자입니다.
for i in range(len(df)) :
if df1.loc[i, "idx1"]=="HELLO" :
cnt1=cnt1+1
num=i
df2.loc[10, 'idx8'] = df.at[i,'IDX8']
이런 코드가 있긴 한데 for문으로 돌리니깐 "실행"시간이 생각보다 오래걸려서 for문을 안 써서 해보려고 하는데 어려움이 있어서요
num값과 cnt1 값을 for문 안 쓰고 값을 받고 싶은데 방법이 있을까요?
1 답변
-
이런 걸 원하는 건가요?
특정컬럼의 값이
"HELLO"
인 것만 뽑아서, 그 갯수와 위치를 알아내기.>>> import pandas as pd >>> df = pd.DataFrame({"idx1":["AELLO", "HELLO", "KELLO", "HELLO", "MELLO"]}) >>> df idx1 0 AELLO 1 HELLO 2 KELLO 3 HELLO 4 MELLO >>> df[df.idx1 == "HELLO"] idx1 1 HELLO 3 HELLO >>> len(df[df.idx1 == "HELLO"]) 2 >>> df[df.idx1 == "HELLO"].index Int64Index([1, 3], dtype='int64')
- 넵 맞습니다..! 감사합니다. len이랑 df.index를 사용하면 cnt 와 num을 for문 없이 가능했던 거네요. 이렇게 간단했던걸 왜 생각 못 했을까요. 다시 한번 감사드립니다. 물먹는하마 2021.9.8 14:10
- @Chang : for 문으로 해결하려는 사고 프레임에서, 집합적으로 바라보는 사고 프레임으로 전환이 필요합니다. 개인적으로는 sql 의 기본적인 select 문을 좀 익히는게 도움이 되는 것 같습니다. ( select count, select group by, ... ) nowp 2021.9.8 15:12
- 조언 감사드립니다. 저도 for문으로 안써보려고 고민은 해보긴 하는데 뭔가 아직은 좀 힘든거 같네요 ㅠㅠ 물먹는하마 2021.9.18 00:30
댓글 입력