홈>
데이터 프레임
df
가 있다고
import pandas as pd
df = pd.DataFrame({"id":["a", "b", "aa", "aaa", "bbb", "a"]})
이 경우열 id의 문자열 길이의 수를 계산하려고합니다.
이 예에서는
id
에 3 개의 문자열이 있습니다.
길이 1과 길이 2의 문자열 1, 길이 3의 문자열 2와 함께이 정보를 반영하는 테이블을 만들고 싶습니다
str_length count
1 3
2 1
3 2
수백만 행에 대해 가장 효율적인 방법은 무엇입니까?
이것은 내가 생각해 낼 수있는 최선이지만
apply
를 사용한다고 들었습니다.
느리다
df_count = df.id.apply(lambda x: len(x)).value_counts()
df_count2 = pd.DataFrame({"str_length": df_count.index.tolist(), "count": df_count})
df_count2.sort_values("str_length")
이것은 양보한다
str_length count
1 1 3
2 2 1
3 3 2
- 답변 # 1
- 답변 # 2
그룹 및 카운트 사용
( df.groupby(by=df.id.apply(len)) .id.count() .to_frame('count') .rename_axis(index='str_length') .reset_index() ) str_length count 0 1 3 1 2 1 2 3 2
- 답변 # 3
numpy 솔루션 :
<시간>np.transpose(np.unique(df.id.map(len), return_counts=True)) Out[229]: array([[1, 3], [2, 1], [3, 2]], dtype=int64)
데이터 프레임 생성
pd.DataFrame(np.transpose(np.unique(df.id.map(len), return_counts=True)), columns=['str_length', 'count']) Out[231]: str_length count 0 1 3 1 2 1 2 3 2
- 답변 # 4
또는 성능이 문제가 아닌 경우 다음을 사용할 수 있습니다
df.id.groupby(lambda x: len(df.id[x])).size()
또는
df.id.groupby(df.id.apply(len)).size()
관련 자료
- python - pandas 트윗의 문자열 열에서 단어 목록으로 하위 문자열 찾기
- python - 문자열을 datetime pandas로 변환
- ios - 신속하게 기본 64 문자열을 이미지 반환 nil로 변환
- python - 문자열 열 팬더에서 계산을 수행하는 방법
- c# - 문자열의 문자 수를 세고 중복을 삭제하십시오
- python - Pandas 데이터 행에서 범주 발생 횟수 계산
- Flutter로 List String에서 동일한 날짜를 계산하는 방법은 무엇입니까?
- python - 문자열에서 발견 된 세 쌍의 수를 계산하는 방법은 무엇입니까?
- 키별로 그룹화하고 Pandas 데이터 프레임에서 최대로만 관찰을 반환하는 방법
- python - 판다 - 지정된 값이있는 기간 수 계산
- python - 여러 팬더 열을 문자열 부울에서 부울로 변환하는 방법은 무엇입니까?
- python - Pandas 날짜 문자열 (월 및 연도 만)을 datetime으로 변환
- python - 이 문자열 형식의 의미 - (return f"${value :, 2f}")
- C의 함수에서 반환되는 포인터 문자열 인쇄
- javascript - 일부 문자가 다른 문자로 대체되는 새 문자열을 반환하려고합니다
- python - (대부분) 숫자를 나타내는 문자열 열로 Pandas DataFrame을 정렬 하시겠습니까?
- 파이썬에서 가장 연속적으로 발생하는 문자열을 센다
- python - Pandas에서 NaN을 문자열 값으로 바꾸는 방법
- python - 각 값의 개수를 가져 오는 Pandas 코드
- python 3.x - 길이가 다른 두 개의 Pandas 데이터 프레임/테이블 결합
관련 질문
- python : matplotlib 그림을 사용하여 동일한 신호에 여러 시작 및 끝 세그먼트 플로팅
- python : Dataframe의 문자열에서 원하지 않는 부분 제거
- python : 데이터 프레임의 for 루프에서 유클리드 거리 개발
- python : pandas Dataframe을 자동으로 생성하는 기능
- python : 사전을 사용하여 토큰화된 판다 시리즈에서 정확한 용어 찾기/바꾸기
- Python DataFrame에 Excel 파일 추가
- python : 팬더의 동일한 Excel 시트에서 2개의 열 비교
- python : 어떻게 하면 사전을 엑셀로 추출할 수 있나요?
- python : 두 번째 데이터 프레임을 데이터로 사용하여 총 열을 얻기 위해 데이터 프레임을 반복하는 것을 피하십시오.
- python : 다른 데이터 프레임의 데이터를 사용하여 데이터 프레임의 열에 대한 계산 수행
여러분은