亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python之DataFrame按照規則批量修改某列的數據

系統 5069 0

     在使用Python進行數據分析時,我們經常會看一個數據的分布,然后對數據進行處理。比如說有一個場景:

以下數據是某個產品的提前預定期:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
%matplotlib inline
data = (pd.read_csv('D:/Users/Merchants_portrait.csv')).astype('int')
avg_days_befor = (data['avg_days_befor'].value_counts()).reset_index()
sns.barplot(x = avg_days_befor.index, y = avg_days_befor['avg_days_befor'])
plt.show() # 圖3

這個圖看起來比較丑,因為天數比較多,所以橫坐標密密麻麻

 image.png  

我們看下提前預定天數和每個預定天數的產品的情況

 avg_days_befor.head()

 

 image.png  

看下分布情況

#觀察下提前預定天數的分布
avg_days_befor.describe()

從下面表格可以看出,提前預定天數在0-633之間,75%的分布在200以內

 indexavg_days_befor
count259.000000259.000000
mean139.382239485.555985
std97.0807851240.626948
min0.0000001.000000
25%64.5000002.000000
50%129.00000017.000000
75%194.500000180.000000
max633.00000010273.000000

根據上面的分析,假如我們想把提前預定天數改為階段分布,我們可以按照如下來做:

我們先定義一個預定天數重寫的函數,然后使用lambda函數應用在那一列上,并且把結果更新到原來數據的該列上,如果不重寫到原來的數據上,那么原dataframe不會變

#對于提前預定天數重寫
def fun_avg_days_befor(x):
    if x <= 7:
        return 1
    elif x > 7 and x <= 14:
        return 2
    elif x > 14 and x <= 21:
        return 3
    elif x > 21 and x <= 28:
        return 4
    elif x > 28 and x <= 35:
        return 5
    elif x > 35 and x <= 42:
        return 6
    elif x > 42 and x <= 49:
        return 7
    elif x > 49 and x <= 56:
        return 8
    elif x > 56 and x <= 63:
        return 9
    else:
        return 10

#將數據生效在原dataframe上
data['avg_days_befor'] = data['avg_days_befor'].apply(lambda x:fun_avg_days_befor(x))

avg_days_befor = (data['avg_days_befor'].value_counts()).reset_index()

 

我們先看下改變后的結果:

sns.barplot(x = avg_days_befor.index, y = avg_days_befor['avg_days_befor'])
plt.show() # 圖3

 

 image.png  

可以看出,結果已經更改到原來的數據集上了。

那么,如果我們直接執行語句,不復寫原來的dataframe呢?我們看下結果

#對于提前預定天數重寫
def fun_avg_days_befor(x):
    if x <= 7:
        return 1
    elif x > 7 and x <= 14:
        return 2
    elif x > 14 and x <= 21:
        return 3
    elif x > 21 and x <= 28:
        return 4
    elif x > 28 and x <= 35:
        return 5
    elif x > 35 and x <= 42:
        return 6
    elif x > 42 and x <= 49:
        return 7
    elif x > 49 and x <= 56:
        return 8
    elif x > 56 and x <= 63:
        return 9
    else:
        return 10

data['avg_days_befor'].apply(lambda x:fun_avg_days_befor(x))

 

從下面結果可以看出,他只是個簡單結果,再查看原來的dataframe是不會有任何改變的

 image.png  


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月色婷婷综合激情免费视频 | 国产人成激情视频在线观看 | 一级毛片在线观看视频 | 亚洲人人草 | 欧美毛片性视频区 | 五月天婷婷在线免费观看 | 国产精品一区二区三区四区五区 | 欧美日韩亚洲在线观看 | 国产成人精品日本亚洲语言 | 特级按摩一级毛片 | 日本特黄a级高清免费大片18 | 四虎影在线永久免费观看 | 欧美日韩国产高清精卡 | 久久久久欧美精品三级 | 国产欧美日韩精品一区二 | 97国产在线公开免费观看 | 国产伦精品一区二区三区免费迷 | 伊人久久精品亚洲精品一区 | 国内精品伊人久久大香线焦 | 日本黄页网 | www.97影院| 久久久久久久亚洲精品一区 | 四虎精品永久在线网址 | 国产在线精品一区二区高清不卡 | a毛片成人免费全部播放 | 亚洲欧美一区二区三区四区 | 欧美猛交xxxxx | 天天操夜夜爱 | 最近中文国语字幕在线播放视频 | 夜夜摸天天操 | 在线观看麻豆精品国产不卡 | 四虎在线最新地址4hu | 色亚洲视频 | 国产自愉自愉全免费高清 | 欧美亚洲精品小说一区二三区 | 欧美图片一区 | 欧美区一区二 | 欧美成人精品一区二区三区 | 久久伊人精品综合观看99 | 国产精品推荐 | 久久99免费|