요점 질문 :
이건 못 생겼지? Pandas 데이터 프레임의 경우 :
happyBarFrame['Sunday'].apply(lambda x : x == [0]).value_counts()[0]
긴 버전 : Pandas Dataframe에서 "빈"값의 합계를 찾으려고합니다. 비어 있음은 항목이 [0] 일 때-목록입니다.
가장 좋은 해결책은 데이터 프레임 셀의 값으로 목록 [0]을 사용하지 않는 것입니다. 내가 그것을 고수한다고 가정하면 왜 그렇게 많은 함수가 작동하지 않고 "해시 할 수없는 목록"오류가 발생하는지 이해하고 싶습니다.
네, 이것은 데이터 과학 수업을위한 숙제입니다. 우리는 술집과 행복한 시간을 제공하는 웹 페이지를 긁습니다. 이 데이터 프레임을 구축했으며 목록의 마지막 항목이 해피 아워가 끝나는 시간 목록을 사용했습니다. 데이터의 몇 가지 버그를 무시합니다.
내가 일할 것으로 예상되는 많은 함수가 목록으로 해시 할 수 없다고 알려주기 때문에 데이터 프레임 안에 목록을 저장하는 것이 최선의 생각이 아니라고 믿게되었습니다.
In [173]: happyBarFrame['Sunday'].value_counts()
... 긴 오류 건너 뛰기 ...
TypeError: unhashable type: 'list'
질문은 : 나는 다른 많은 것들 중에서 다음을 시도했습니다. 단일 0 (셀 값 = [0])이있는 목록이있는 셀을 일별로 계산하는 가장 좋은 방법은 무엇입니까?
happyBarFrame[happyBarFrame['Sunday'].isin([[0]])]
-작동하지 않음 happyBarFrame[happyBarFrame['Sunday'].isin([0])]
-작동하지 않음
둘 다 줄 TypeError: unhashable type: 'list'
happyBarFrame['Sunday'].apply(lambda x : x == [0]).value_counts()[0]
작동하지만 잘못된 느낌! 요일을 반복하여 일별 개수를 얻은 다음 구축해야하는 히스토그램을 작성할 수 있습니다. 하지만 더 나은 방법이 있어야합니다. 이것은 정말 비효율적 인 것 같습니다. 사실입니까?
편집 : value_counts [0]에서 False가 아닌 True를 계산해야하는 버그를 수정했습니다.
단순히 데이터 프레임의 모든 셀에 함수를 적용하려면 다음을 사용할 수 있습니다 applymap
. 그런 다음 열 합계를 얻으려면 다음을 호출하십시오 sum
.
df = pd.DataFrame({"Sunday": [[0],[0,1]], "Monday": [[0],[0]]})
df.applymap(lambda x: x == [0]).sum()
Monday 2
Sunday 1
dtype: int64
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다