当前位置:   article > 正文

数据清洗之数据转换_df1['网管中网元名称'].str.find('光口') != -1

df1['网管中网元名称'].str.find('光口') != -1

 

数据清洗之数据转换

  1. ### 1.日期格式数据处理
  2. import numpy as np
  3. import pandas as pd
  4. import os
  5. os.chdir(r'F:\CSDN\课程内容\代码和数据')
  6. df = pd.read_csv('baby_trade_history.csv', encoding='utf-8',dtype={'user_id':str})
  7. df.head(10)
  8. # 对购买日期进行转换
  9. df['buy_date'] = pd.to_datetime(df['day'],format='%Y%m%d',errors = 'coerce')#加errors防止报错
  10. df.dtypes
  11. # 可以提取对应年月日,必须为timestamp才可以,具体的时间点
  12. df['buy_date'].dt.year
  13. 时间差
  14. # 对时间进行计算
  15. df['diff_day'] = pd.datetime.now() - df2['birthday']
  16. df['diff_day'].head(5)
  17. # 时间差由天数,小时和毫秒构成
  18. # timedelta可以理解为时间差类型
  19. df['diff_day'].dt.days# 提取天数
  20. df['diff_day'].dt.seconds# 提取秒数
  21. df['diff_day'].dt.microseconds# 提取毫秒数
  22. # 可以使用pd.Timedelta进行转换
  23. df['时间差'] = df['diff_day']/pd.Timedelta('1 D') #转换为天数
  24. df['时间差'] = df['diff_day']/pd.Timedelta('1 M') #转换为分钟
  25. df['时间差'].head(5)
  26. df['时间差'].round(decimals=3)# 显示为3小数
  27. df['diff_day'].astype('timedelta64[D]')# 这种方式也可以,M 代表月份数,D代表天数,Y代表年份

2. 字符串数据处理

  • 摩托车的销售情况
  • Condition:摩托车新旧情况(new:新的 和used:使用过的)
  • Condition_Desc:对当前状况的描述
  • Price:价格
  • Location:发获地址
  • Model_Year:购买年份
  • Mileage:里程
  • Exterior_Color:车的颜色
  • Make:制造商(牌子)
  • Warranty:保修
  • Model:类型
  • Sub_Model:车辆类型
  • Type:种类
  • Vehicle_Title:车辆主题
  • OBO:车辆仪表盘
  • Watch_Count:表数
  1. df1 = pd.read_csv('MotorcycleData.csv',encoding='gbk')#摩托车信息
  2. df1.head(5)
  3. df1['Price'].str[0:4]# 字符串切片
  4. 将价格转换为float
  5. df1['Price'].astype(float)
  6. # 之间转换直接报错,需要进行字符串处理
  7. df1['价格'] = df1['Price'].str.strip('$')#字符串相关方法
  8. df1['价格'] = df1['价格'].str.replace(',','')
  9. df1['价格'] = df1['价格'].astype(float)# 转换为float数据
  10. df1.Model.head(5)
  11. df1['Location'].str.split(',') # 使用字符串分割,用于对文本的处理
  12. df1['Mileage'].str.len() #计算字符串长度
  13. ### 3. 高阶函数数据处理
  14. df2 = pd.read_csv('sam_tianchi_mum_baby.csv',encoding = 'utf-8',dtype =str)#婴儿信息
  15. def f(x):
  16. if '0' in x:
  17. return '女'
  18. elif '1' in x :
  19. return '男'
  20. else:
  21. return '未知'
  22. # 0代表女,1代表男,2代表未知
  23. df2['性别'] = df2['gender'].apply(f)
  24. df2.head(4)
  25. #使用map函数
  26. df2['性别'] = df2['gender'].map({'0':'女','1':'男','2':'未知'})
  27. df2['user_id'].apply(lambda x: x.replace(x[1:3],'**')) #结合lambda替换
  28. df2['birthday'].apply(lambda x: str(x)[0:4]) #提取年份

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/759946
推荐阅读
相关标签
  

闽ICP备14008679号