문제를 해결하는 절차는 다음과 같습니다.
2015년 1월 1일부터 2018년 1월 3일까지의 쇼핑몰 회원정보 데이터를 원본 데이터셋으로 사용하였으며 파일은 csv 파일 형식입니다.
데이터의 일부 데이터에는 불완전한 데이터와 잘못된 논리가 있습니다.Pandas 라이브러리를 사용하여 CSV 파일 형식으로 데이터를 처리하는 것이 매우 편리합니다.
"생년월일", "성별", "등록시간" 컬럼에 누락된 값이 있어 이를 채우기가 쉽지 않으므로 누락된 값이 있는 행 데이터 삭제를 고려하십시오. 데이터 관찰을 통해 가입 시점이 회원의 생년월일보다 이른 회원이 있음을 알 수 있으며, 원본 데이터의 양이 많기 때문에 이러한 종류의 데이터는 차지하는 비중이 적고 문제 분석에 미치는 영향이 적습니다. 따라서 폐기되고 최종 정리되며 최종 데이터는 TASK.csv 파일로 저장됩니다.
중국의 분류 기준에 따르면, 0-17세 회원은 청소년으로, 18-40세 회원은 청소년으로, 40-65세 회원은 중년 회원으로, 65세 이상 회원은 고령자로 분류되며, 회원 데이터는 연령에 따라 청소년, 청년, 중년, 노년으로 나뉜다.
마지막으로 info() 함수, value_counts() 함수 및 describe() 함수를 사용하여 데이터의 정보를 편리하게 볼 수 있습니다.
프로그램 코드는 다음과 같습니다.
import pandas as pd
shj=pd.read_csv('userinfo1.csv',encoding='gbk',header=0)
qshj=shj.dropna(subset=['出生日期','性别','登记时间'],
axis=0,how='any')
csrq=pd.to_datetime(qshj.loc[:,'出生日期'],errors='coerce')
djsj=pd.to_datetime(qshj.loc[:,'登记时间'])
qshj.loc[:,'时间差']=djsj-csrq
qshj.loc[:,'总秒数']=qshj['时间差'].dt.total_seconds()
qcshj=qshj.loc[qshj['总秒数']>0]#
qcshj2=qshj.loc[qshj['总秒数']>0]#
qcshj.drop(['时间差'],axis=1,inplace=True)
qcshj.drop(['总秒数'],axis=1,inplace=True)
qcshj.to_csv('TASK.csv',index=None)
# xzsj=pd.to_datetime('2021/12/7 00:00')
qcshj2.loc[:,'出生年份']=csrq.dt.year
chsnf=qcshj2['出生年份']#
qcshj2.loc[:,'年龄']=2021-chsnf
qcshj2.loc[:,'年龄划分']=''
qcshj2.loc[qcshj2['年龄']<=17,'年龄划分']='少年'
qcshj2.loc[(qcshj2['年龄']>=18)&(qcshj2['年龄']<=40),'年龄划分']='青年'
qcshj2.loc[(qcshj2['年龄']>=41)&(qcshj2['年龄']<=65),'年龄划分']='中年'
qcshj2.loc[qcshj2['年龄']>=66,'年龄划分']='老年'
renshu=pd.Series(qcshj2['年龄划分'])
print(renshu.value_counts())
qcshj2.drop(['时间差'],axis=1,inplace=True)
qcshj2.drop(['总秒数'],axis=1,inplace=True)
qcshj2.drop(['年龄划分'],axis=1,inplace=True)
# qcshj2.drop(['年龄'],axis=1,inplace=True)
qcshj2.to_csv('task1.csv',index=None)
프로그램 실행 결과는 다음과 같습니다.
(경고가 발생하며, 경고에 의해 처리된 데이터는 대상 파일에서 변경되며 목적에 부합하며 영향을 미치지 않습니다.)
이것을 본 친구들은 떠나기 전에 좋아하는 것을 잊지 마십시오!
Python 프로그래밍 지식에 대해 자세히 알아보려면 블로거를 팔로우하세요!