传奇sf,传奇私服发布网,新开一秒传奇
当前位置:网站首页 > 传奇私服 > 正文

你的数据清理便捷工具箱

作者:admin发布时间:2021-09-11分类:传奇私服浏览:287评论:25


导读:在下面的代码片段中数据清洗代码被封装在了一些函数中代码的目的十分直观。你可以直接使用这些代码无需将它们嵌入到需要进行少量参数修改的函数中。1.删除多列数据def (, df):  ...

你的数据清理便捷工具箱

在下面的代码片段中数据清洗代码被封装在了一些函数中代码的目的十分直观。你可以直接使用这些代码无需将它们嵌入到需要进行少量参数修改的函数中。

1.删除多列数据

def (, df):         AIM    - Drop    on          - List of column names, df    OUTPUT - updated df with dropped columns     ------        df.drop(col_names_list, axis1, inplaceTrue)    return df

有时并不是所有列的数据都对我们的数据分析工作有用。因此df.drop可以方便地删掉你选定的列。

2.转换Dtypes

def change_dtypes(col_int, col_float, df):         AIM    - Changing dtypes to save memory    INPUT  - List of column names (int, float), df    OUTPUT - updated df with smaller memory      ------        df[col_int]  df[col_int].astype(int32)    df[col_float]  df[col_float].astype(float32)

当我们面对更大的数据集时我们需要对「dtypes」进行转换从而节省内存。如果你有兴趣学习如何使用Pandas来处理大数据我强烈推荐你阅读「WhyandHowtoUsePandaswithLargeData」这篇文章https://towardsdatascience.com/why-and-how-to-use-pandas-with-large-data-9594dda2ea4c。

3.将分类变量转换为数值变量

def convert_cat2num(df):    # Convert categorical variable to numerical variable    num_encode  {col_1 : {YES:1, NO:0},                  col_2  : {WON:1, LOSE:0, DRAW:0}}      df.replace(num_encode, inplaceTrue)  

有一些机器学习模型要求变量是以数值形式存在的。这时我们就需要将分类变量转换成数值变量然后再将它们作为模型的输入。对于数据可视化任务来说我建议大家保留分类变量从而让可视化结果有更明确的解释便于理解。

4.检查缺失的数据

def check_missing_data(df):    # check for any missing data in the df (display in descending order)    return df.isnull().sum().sort_values(ascendingFalse)

如果你想要检查每一列中有多少缺失的数据这可能是最快的方法。这种方法可以让你更清楚地知道哪些列有更多的缺失数据帮助你决定接下来在数据清洗和数据分析工作中应该采取怎样的行动。

5.删除列中的字符串

def remove_col_str(df):    # remove a portion of string in a dataframe column - col_1    df[col_1].replace(

, , regexTrue, inplaceTrue)    # remove all the characters after # (including #) for column - col_1    df[col_1].replace( #.*, , regexTrue, inplaceTrue)

有时你可能会看到一行新的字符或在字符串列中看到一些奇怪的符号。你可以很容易地使用 df[col_1].replace 来处理该问题其中「col_1」是数据帧df中的一列。

6.删除列中的空格

def remove_col_white_space(df):    # remove white space at the beginning of string     df[col]  df[col].str.lstrip()

当数据十分混乱时很多意想不到的情况都会发生。在字符串的开头有一些空格是很常见的。因此当你想要删除列中字符串开头的空格时这种方法很实用。

7.将两列字符串数据在一定条件下拼接起来

def concat_col_str_condition(df):    # concat 2 columns with strings if the last 3 letters of the first column are pil    mask  df[col_1].str.endswith(pil, naFalse)    col_new  df[mask][col_1]  df[mask][col_2]    col_new.replace(pil,  , regexTrue, inplaceTrue)  # replace the pil with emtpy space

当你希望在一定条件下将两列字符串数据组合在一起时这种方法很有用。例如你希望当第一列以某些特定的字母结尾时将第一列和第二列数据拼接在一起。根据你的需要还可以在拼接工作完成后将结尾的字母删除掉。

8.转换时间戳从字符串类型转换为日期「DateTime」格式

def convert_str_datetime(df):         AIM    - Convert datetime(String) to datetime(format we want)    INPUT  - df    OUTPUT - updated df with new datetime format     ------        df.insert(loc2, columntimestamp, valuepd.to_datetime(df.transdate, format%Y-%m-%d %H:%M:%S.%f))

在处理时间序列数据时你可能会遇到字符串格式的时间戳列。这意味着我们可能不得不将字符串格式的数据转换为根据我们的需求指定的日期「datetime」格式以便使用这些数据进行有意义的分析和展示。


已有25位网友发表了看法:

欢迎 发表评论: