数据清洗-Chap 5-dataframe操作
5.1日期格式数据处理
1.Pandas中使用to_datetime()方法将文本格式转换为日期格式
2.dataframe数据类型如果为datetime64,可以使用dt方法取出年月日
3.对于时间差数据,可以使用timedelta函数将其转换为指定时间单位的数值
4.时间差数据,可以使用dt方法访问其常用属性
import pandas as pd
import os
import numpy as np
os.chdir(r'C:\Users\qw\Desktop\data ana')
df = pd.read_csv('name.csv',encoding = 'utf-8',dtype = {'user_id':str})
df['buy_date'] = pd.to_datetime(df['day'].format='%Y%m%d',error='coerce')
df.info()
df['buy_date'].dt.year
df['buy_date'].dt.month
df['buy_date'].dt.day
df['diff_day'] = pd.datetime.now() - df['buy_date']
df['diff_day'].head(4)
df['diff_day'].dt.days
df['diff_day'].dt.seconds
df['时间差'] = df['diff_day']/pd.Timedelta('1 D')
df['时间差'] = df['diff_day']/pd.Timedelta('1 M')
df['时间差'] = df['diff_day']/pd.Timedelta('1 S')
df['时间差'].round(decimals = 3)
df['时间差'].head(5)
df['diff_day'].astype('timedelta64[Y]')
5.2高阶函数数据处理
1.在dataframe中使用apply方法,调用自定义函数对数据进行处理
2.函数apply,axis =0表示对行进行操作,axis = 1表示对列进行操作
3.可以使用astype函数对数据进行转换
4.可以使用map函数进行数据转换
df2 = pd_read_csv('num.csv',dtype = str, encoding = 'utf-8')
df2.head(10)
def f(x):
if '0' in str(x):
return '女'
elif '1' in str(x):
return '男'
else:
return '未知'
df2['性别'] = df2['gender'].apply(f)
df2[[ df2['gender']=='2']]
del df2['性别']
df2['性别'] = df2['gender'].map({'0':'女','1':'男','2':'未知'})
del df2['性别']
df2['性别'] = df2['gender'].map(f)
df2['user_id'].apply(lambda x: str(x).replace(x[1:3],'**'))
df2['birthday'].apply(lambda x: x[0:4])
5.3字符串数据处理
1.Pandas中提供了字符串的函数,但只能对字符型变量进行使用
2.通过str方法访问相关属性
3.可以使用字符串相关方法进行数据处理
4.常用方法
函数名称说明contains()返回表示各str是否含有指定模式的字符串replace()替换字符串lower()返回字符串的副本,其中字母都转化为小写upper()返回字符串的副本,其中所有字母都转化为大写split()返回字符串中的单词列表strip()删除前导和后置空格join()返回一个字符串,该字符串是给定序列中所有字符串的连接
df1['价格'] = df1['Price'].str.strip('$')
df1['价格'] = df1['价格'].str.replace(',','')
df1['价格'].astype(int)
df1['Location'].str.split(',').str[0]
df1['Location'].str.split(',').str[1]
df1['Location'].str.split(',').str[2]
df1['Location'].str.len()
Original: https://blog.csdn.net/qq_42997268/article/details/121305131
Author: CUPB-PANGBIN
Title: 数据清洗Chap5——数据转换
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/751434/
转载文章受原作者版权保护。转载请注明原作者出处!