developer tip

팬더에서 발생 횟수를 계산하는 가장 효율적인 방법은 무엇입니까?

copycodes 2020. 8. 23. 09:21
반응형

팬더에서 발생 횟수를 계산하는 가장 효율적인 방법은 무엇입니까?


큰 (약 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()봉사해야 한다고 생각 합니다. groupby 기계를 건너 뛰면 시간을 절약 할 수 있습니다. count.NET보다 훨씬 느린 이유를 잘 모르겠습니다 max. 둘 다 누락 된 값을 피하기 위해 시간이 걸립니다. (와 비교하십시오 size.)

어쨌든 value_counts는 당신의 말과 같은 객체 유형을 처리 하도록 특별히 최적화 되었으므로 그보다 훨씬 더 잘할 것 같지 않습니다.


pandas dataFrame의 열에서 범주 형 데이터의 빈도를 계산하려면 다음을 사용하십시오. df['Column_Name'].value_counts()

- 소스 .


이전 답변에 추가되었습니다. 실제 데이터를 처리 할 때 null 값이있을 수 있으므로 옵션 dropna=False( 기본값은True ) 을 사용하여 계수에 포함하는 것도 유용합니다.

예 :

>>> df['Embarked'].value_counts(dropna=False)
S      644
C      168
Q       77
NaN      2

나는 df.column에 "value"가 있는지 찾기 위해 여기에 왔는데, 이것은 나를 위해 일했습니다.

"value" in df["Column"].values

참고 URL : https://stackoverflow.com/questions/20076195/what-is-the-most-efficient-way-of-counting-occurrences-in-pandas

반응형