新手小白python数据清洗代码_数据科学中简单实用的数据清洗代码(python)

在我们拿到数据进行数据分析之前,我们都应该对数据进行数据清洗,以确保使用质量最好的数据进行建模。

不管你承认与否,数据清理都不是一项简单的任务,而且大部分情况都很耗时和乏味,但这个过程太重要了,不容忽视。下面直入正题,介绍简单有用的数据清洗代码。

1. 删除多余的列def drop_multiple_col(col_names_list, df):

```

目标 -> 根据列名删除多余的列

INPUT -> 列名的list, df

OUTPUT -> 丢掉列的df

------

```

df.drop(col_names_list, axis=1, inplace=True)

return df

2. 改变数据类型

当数据集过大的时候,我们需要转换数据类型来节省内存。def change_dtypes(col_int, col_float, df):

```

AIM -> 改变数据类型来节省内存

INPUT -> 需要转换为(int, float)的列的列名, df

OUTPUT -> 占用更小内存的df

------

```

df[col_int] = df[col_int].astype('int32')

df[col_float] = df[col_float].astype('float32')

3. 将类别变量(categorical variable)转换为数值变量(numerical variable)def convert_cat2num(df):

# 将类别变量转换为数值变量

num_encode = {'col_1' : {'YES':1, 'NO':0},

'col_2' : {'WON':1, 'LOSE':0, 'DRAW':0}}

df.replace(num_encode, inplace=True)

将数据喂给模型时,应该把数据中存在的类别变量转换为数值变量。但在数据可视化时,最好应保留类别变量的格式以便于分析。

4. 检测缺失数据

def check_missing_data(df):

# 返回df中每列的缺失数据个数 (降序显示)

return df.isnull().sum().sort_values(ascending=False)

5. 删除列中字符串里的字符或部分字符串def remove_col_str(df):

# 删掉df的col_1列的所有回车

df['col_1'].replace('\n', '', regex=True, inplace=True)

# 删掉col_1列的所有‘’后(包括‘’)的字符

df['col_1'].replace(' .*', '', regex=True, inplace=True)

6. 删除列中字符串里的空格

def remove_col_white_space(df):

#删除列中字符串里的空格

df[col]=df[col].str.lstrip()

7. 按某种条件合并两列内容是字符串的列

def concat_col_str_condition(df):

# 第一列的字符串结尾是 'pil'的行和第二列对应的行合并

mask = df['col_1'].str.endswith('pil', na=False)

col_new = df[mask]['col_1'] + df[mask]['col_2']

col_new.replace('pil', ' ', regex=True, inplace=True) # replace the 'pil' with emtpy space

8. 转换时间戳(string->datetime)

def convert_str_datetime(df):

```

目标 -> 将datetime(String)转换为datetime(我们想要的形式)

INPUT -> df

OUTPUT -> 具有新的datetime形式的df

```

df.insert(loc=2, column='timestamp', value=pd.to_datetime(df.transdate, format='%Y-%m-%d %H:%M:%S.%f'))

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值