日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python數(shù)據(jù)分析:數(shù)據(jù)清洗教學(xué)

 老三的休閑書屋 2021-04-02

數(shù)據(jù)清洗是數(shù)據(jù)分析關(guān)鍵的一步,直接影響之后的處理工作

數(shù)據(jù)需要修改嗎?有什么需要修改的嗎?數(shù)據(jù)應(yīng)該怎么調(diào)整才能適用于接下來的分析和挖掘?

是一個迭代的過程,實(shí)際項(xiàng)目中可能需要不止一次地執(zhí)行這些清洗操作

1. 處理缺失數(shù)據(jù):

  • pd.fillna()
  • pd.dropna()

Python數(shù)據(jù)分析:數(shù)據(jù)清洗教學(xué)

2. 數(shù)據(jù)轉(zhuǎn)換

2.1 處理重復(fù)數(shù)據(jù)

duplicated()返回布爾型Series表示每行是否為重復(fù)行

示例代碼:

import numpy as npimport pandas as pddf_obj = pd.DataFrame({'data1' : ['a'] * 4 + ['b'] * 4, 'data2' : np.random.randint(0, 4, 8)})print(df_obj)print(df_obj.duplicated())

運(yùn)行結(jié)果:

# print(df_obj)  data1  data20     a      31     a      22     a      33     a      34     b      15     b      06     b      37     b      0# print(df_obj.duplicated())0    False1    False2     True3     True4    False5    False6    False7     Truedtype: bool

drop_duplicates()過濾重復(fù)行

  • 默認(rèn)判斷全部列
  • 可指定按某些列判斷

示例代碼:

print(df_obj.drop_duplicates())print(df_obj.drop_duplicates('data2'))

運(yùn)行結(jié)果:

# print(df_obj.drop_duplicates())  data1  data20     a      31     a      24     b      15     b      06     b      3# print(df_obj.drop_duplicates('data2'))  data1  data20     a      31     a      24     b      15     b      0

2.2 利用函數(shù)或映射進(jìn)行數(shù)據(jù)轉(zhuǎn)換

根據(jù)map傳入的函數(shù)對每行或每列進(jìn)行轉(zhuǎn)換

示例代碼:

ser_obj = pd.Series(np.random.randint(0,10,10))print(ser_obj)print(ser_obj.map(lambda x : x ** 2))

運(yùn)行結(jié)果:

# print(ser_obj)0    11    42    83    64    85    66    67    48    79    3dtype: int64# print(ser_obj.map(lambda x : x ** 2))0     11    162    643    364    645    366    367    168    499     9dtype: int64

2.3 替換值

replace根據(jù)值的內(nèi)容進(jìn)行替換

示例代碼:

# 單個值替換單個值print(ser_obj.replace(1, -100))# 多個值替換一個值print(ser_obj.replace([6, 8], -100))# 多個值替換多個值print(ser_obj.replace([4, 7], [-100, -200]))

運(yùn)行結(jié)果:

# print(ser_obj.replace(1, -100))0   -1001      42      83      64      85      66      67      48      79      3dtype: int64# print(ser_obj.replace([6, 8], -100))0      11      42   -1003   -1004   -1005   -1006   -1007      48      79      3dtype: int64# print(ser_obj.replace([4, 7], [-100, -200]))0      11   -1002      83      64      85      66      67   -1008   -2009      3dtype: int64

3. 字符串操作

3.1 字符串方法

Python數(shù)據(jù)分析:數(shù)據(jù)清洗教學(xué)

3.2 正則表達(dá)式方法

Python數(shù)據(jù)分析:數(shù)據(jù)清洗教學(xué)

3.3 pandas字符串函數(shù)

Python數(shù)據(jù)分析:數(shù)據(jù)清洗教學(xué)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多