欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python——類型轉換和冗余數據刪除

系統 1624 0

1.類型轉換

            
              
                import
              
               pandas 
              
                as
              
               pd

              
                import
              
               datetime

            
          

一般我們拿到日期型數據時,基本都是字符串表示的,該如何將其轉換為日期型和日期時間型。

法1:

            
              dt 
              
                =
              
              
                '2019/06/13 16:16:39'
              
              
d 
              
                =
              
              
                '2017-04-24'
              
              

str2datetime 
              
                =
              
               datetime
              
                .
              
              datetime
              
                .
              
              strptime
              
                (
              
              dt
              
                ,
              
              
                '%Y/%m/%d %H:%M:%S'
              
              
                )
              
              
str2date1 
              
                =
              
               datetime
              
                .
              
              datetime
              
                .
              
              strptime
              
                (
              
              d
              
                ,
              
              
                '%Y-%m-%d'
              
              
                )
              
              
str2date2 
              
                =
              
                datetime
              
                .
              
              datetime
              
                .
              
              strptime
              
                (
              
              d
              
                ,
              
              
                '%Y-%m-%d'
              
              
                )
              
              
                .
              
              date
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              str2datetime
              
                )
              
              
                print
              
              
                (
              
              str2date1
              
                )
              
              
                print
              
              
                (
              
              str2date2
              
                )
              
            
          
            
              2019-06-13 16:16:39
2017-04-24 00:00:00
2017-04-24

            
          

法2:

            
              
                # 字符串轉換為時間格式
              
              

dt 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              
                [
              
              
                '2019/06/13 16:16:39'
              
              
                ,
              
              
                '2019-03-02 23:12:23'
              
              
                ,
              
              
                '2019-03-22 13:12:23'
              
              
                ,
              
              
                '2019-05-02 15:12:30'
              
              
                ,
              
              
                '2019-04-02 17:33:23'
              
              
                ,
              
              
                '20/05/02'
              
              
                ]
              
              
                )
              
              
                print
              
              
                (
              
              dt
              
                )
              
            
          
            
                                   0
0  2019/06/13 16:16:39
1  2019-03-02 23:12:23
2  2019-03-22 13:12:23
3  2019-05-02 15:12:30
4  2019-04-02 17:33:23
5             20/05/02

            
          
            
              dt
              
                .
              
              iloc
              
                [
              
              
                :
              
              
                ,
              
              
                0
              
              
                ]
              
              
                =
              
               pd
              
                .
              
              to_datetime
              
                (
              
              dt
              
                .
              
              iloc
              
                [
              
              
                :
              
              
                ,
              
              
                0
              
              
                ]
              
              
                ,
              
              
                format
              
              
                =
              
              
                '%Y-%m-%d'
              
              
                ,
              
              errors 
              
                =
              
              
                'coerce'
              
              
                )
              
              
                # 將其他格式顯示成NaT
              
            
          
            
              
                print
              
              
                (
              
              dt
              
                )
              
            
          
            
                                  0
0 2019-06-13 16:16:39
1 2019-03-02 23:12:23
2 2019-03-22 13:12:23
3 2019-05-02 15:12:30
4 2019-04-02 17:33:23
5                 NaT

            
          
            
              salesDf
              
                =
              
              dt
              
                .
              
              dropna
              
                (
              
              how
              
                =
              
              
                'any'
              
              
                )
              
              
                print
              
              
                (
              
              salesDf
              
                )
              
            
          
            
                                  0
0 2019-06-13 16:16:39
1 2019-03-02 23:12:23
2 2019-03-22 13:12:23
3 2019-05-02 15:12:30
4 2019-04-02 17:33:23

            
          

2.冗余數據刪除

1.刪除缺失值
dropna() 默認刪除含有缺失值的行,參數how = 'all’指刪除全部為空值的行

            
              data3 
              
                =
              
               pd
              
                .
              
              read_excel
              
                (
              
              io
              
                =
              
              r
              
                'D:\BD\data3.xlsx'
              
              
                )
              
            
          
            
              data3
              
                .
              
              dtypes

            
          
            
              id              int64
gender         object
age           float64
edu            object
custom_amt     object
order_date     object
dtype: object

            
          
            
              data3
              
                .
              
              head
              
                (
              
              
                )
              
            
          
id gender age edu custom_amt order_date
0 890 female 43.0 NaN ¥2177.94 2018年12月25日
1 2391 male 52.0 NaN ¥2442.18 2017年5月24日
2 2785 male 39.0 NaN ¥849.79 2018年5月15日
3 1361 female 26.0 NaN ¥2482.22 2018年5月16日
4 888 female 61.0 本科 ¥2027.9 2018年1月21日

上述數據中用戶id應為字符型,消費金額應為數值型,訂單日期應為日期型

            
              
                # 用戶id轉換為字符型
              
              
data3
              
                [
              
              
                'id'
              
              
                ]
              
              
                =
              
               data3
              
                [
              
              
                'id'
              
              
                ]
              
              
                .
              
              astype
              
                (
              
              
                str
              
              
                )
              
              
                # 用戶消費金額轉換為數值型 ,消費金額中包含人民幣符號'¥',所以要從第二個元素開始截斷
              
              
data3
              
                [
              
              
                'custom_amt'
              
              
                ]
              
              
                =
              
               data3
              
                [
              
              
                'custom_amt'
              
              
                ]
              
              
                .
              
              
                str
              
              
                [
              
              
                1
              
              
                :
              
              
                ]
              
              
                .
              
              astype
              
                (
              
              
                float
              
              
                )
              
              
                # 訂單日期轉換為日期型
              
              
data3
              
                [
              
              
                'order_date'
              
              
                ]
              
              
                =
              
               pd
              
                .
              
              to_datetime
              
                (
              
              data3
              
                [
              
              
                'order_date'
              
              
                ]
              
              
                ,
              
              
                format
              
              
                =
              
              
                '%Y年%m月%d日'
              
              
                )
              
            
          

2.刪除重復數據
data3.duplicated().any()

判斷數據中是否存在重復觀測,如果不加any(),則會返回一個與原數據行數相同的序列,使用了any()方法,則只返回一個值(True或False)

duplicated方法和drop_duplicates方法 都有一個重要的參數,默認情況下不設置該參數時,表示對數據的所有列進行重復性判斷,如果需要按照指定的變量做數據的重復性判斷時,就可以使用該參數指定具體的變量列表。

            
              
                # 構造數據
              
              
df 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              
                dict
              
              
                (
              
              name 
              
                =
              
              
                [
              
              
                '張三'
              
              
                ,
              
              
                '李四'
              
              
                ,
              
              
                '王二'
              
              
                ,
              
              
                '張三'
              
              
                ,
              
              
                '趙五'
              
              
                ,
              
              
                '丁一'
              
              
                ,
              
              
                '王二'
              
              
                ]
              
              
                ,
              
              
                      gender 
              
                =
              
              
                [
              
              
                '男'
              
              
                ,
              
              
                '男'
              
              
                ,
              
              
                '女'
              
              
                ,
              
              
                '男'
              
              
                ,
              
              
                '女'
              
              
                ,
              
              
                '女'
              
              
                ,
              
              
                '男'
              
              
                ]
              
              
                ,
              
              
                      age 
              
                =
              
              
                [
              
              
                29
              
              
                ,
              
              
                25
              
              
                ,
              
              
                27
              
              
                ,
              
              
                29
              
              
                ,
              
              
                21
              
              
                ,
              
              
                22
              
              
                ,
              
              
                27
              
              
                ]
              
              
                ,
              
              
                      income 
              
                =
              
              
                [
              
              
                15600
              
              
                ,
              
              
                14000
              
              
                ,
              
              
                18500
              
              
                ,
              
              
                15600
              
              
                ,
              
              
                10500
              
              
                ,
              
              
                18000
              
              
                ,
              
              
                13000
              
              
                ]
              
              
                ,
              
              
                      edu 
              
                =
              
              
                [
              
              
                '本科'
              
              
                ,
              
              
                '本科'
              
              
                ,
              
              
                '碩士'
              
              
                ,
              
              
                '本科'
              
              
                ,
              
              
                '大專'
              
              
                ,
              
              
                '本科'
              
              
                ,
              
              
                '碩士'
              
              
                ]
              
              
                )
              
              
                )
              
              
df

            
          
name gender age income edu
0 張三 29 15600 本科
1 李四 25 14000 本科
2 王二 27 18500 碩士
3 張三 29 15600 本科
4 趙五 21 10500 大專
5 丁一 22 18000 本科
6 王二 27 13000 碩士
            
              
                # 默認情況下,對每行所有變量進行判斷,刪除第二條重復行,刪除第二行的張三
              
              
df
              
                .
              
              drop_duplicates
              
                (
              
              
                )
              
            
          
name gender age income edu
0 張三 29 15600 本科
1 李四 25 14000 本科
2 王二 27 18500 碩士
4 趙五 21 10500 大專
5 丁一 22 18000 本科
6 王二 27 13000 碩士
            
              
                # 根據用戶姓名和年齡來刪除重復值
              
              
df
              
                .
              
              drop_duplicates
              
                (
              
              subset 
              
                =
              
              
                [
              
              
                'name'
              
              
                ,
              
              
                'age'
              
              
                ]
              
              
                )
              
            
          
name gender age income edu
0 張三 29 15600 本科
1 李四 25 14000 本科
2 王二 27 18500 碩士
4 趙五 21 10500 大專
5 丁一 22 18000 本科

使用drop_duplicates方法刪除重復數據,并不能直接影響到原始數據,即原始數據中還是存在重復觀測的,若使用inplace = True,則會用刪除后的數據替換原始數據


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲人jizz日本人处 | 成人在线免费观看 | 精品99在线 | 一级视频在线播放 | 91精品国产日韩91久久久久久 | 91精品欧美久久久久久动漫 | 日产中文字乱码卡一卡二视频 | 奇米影视4色 | 999国产视频| 精品卡1卡二卡3卡 | 日本免费黄色 | 久久精品99| 99re久久资源最新地址 | 1级片在线观看 | 日日夜操 | 久久亚洲国产成人亚 | 久久这里只有精品视频9 | 国产视频中文字幕 | 欧美美女动态图 | 麻豆短视频传媒网站怎么找 | 国内自拍视频在线观看 | 国产精品黄网站免费进入 | 亚洲区视频 | 国产精品一区二区久久久久 | 羞羞哒哒视频 | 亚洲国产日韩欧美在线 | 午夜精品在线观看 | 日韩黄色一级大片 | 色婷婷天天综合在线 | 香蕉香蕉国产片一级一级毛片 | 新封神榜杨戬电影免费动画在线观看国语 | 色综合国产 | 91亚洲国产成人久久精品网站 | 国产精品资源网站在线观看 | 一区二区中文 | 日韩成人在线电影 | 亚洲成a人片在线看 | 毛片国产 | 欧美成人精品激情在线观看 | 午夜免费| 国产一区二区在线免费观看 |