다음과 같이 큰 (약 12M 행) 데이터 프레임 df가 있습니다.
df.columns = ['word','documents','frequency']
따라서 다음은 적시에 실행되었습니다.
word_grouping = df[['word','frequency']].groupby('word')
MaxFrequency_perWord = word_grouping[['frequency']].max().reset_index()
MaxFrequency_perWord.columns = ['word','MaxFrequency']
그러나 실행하는 데 예상치 못한 시간이 오래 걸립니다.
Occurrences_of_Words = word_grouping[['word']].count().reset_index()
내가 여기서 뭘 잘못하고 있니? 큰 데이터 프레임에서 발생을 계산하는 더 좋은 방법이 있습니까?
df.word.describe()
꽤 잘 실행 되었으므로이 Occurrences_of_Words 데이터 프레임을 빌드하는 데 시간이 오래 걸리지 않을 것입니다.
추신 : 답변이 분명하고이 질문을해서 저에게 불이익을 줄 필요가 있다고 생각되면 답변도 포함하십시오. 감사합니다.
답변
나는 df['word'].value_counts()
봉사해야 한다고 생각 합니다. 그룹 별 기계를 건너 뛰면 시간이 절약됩니다. 왜 count
보다 느려 야하는지 잘 모르겠습니다 max
. 둘 다 누락 된 값을 피하기 위해 시간이 걸립니다. (와 비교하십시오 size
.)
어쨌든 value_counts는 단어와 같이 객체 유형을 처리 하도록 특별히 최적화 되었으므로 그보다 훨씬 더 잘할 것입니다.