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

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

系統 5163 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條評論
主站蜘蛛池模板: 欧美zzzz| 秋霞理论在线视频 | 尤物国产 | 天天干夜夜噜 | 狠狠色丁香婷婷综合久久来 | 免费午夜电影 | 二区三区偷拍浴室洗澡视频 | 老牛影视av一区二区在线观看 | 欧美精品网站 | 久草观看视频 | 色欲天天婬色婬香视频综合网 | 国产精品乱码一区二三区小蝌蚪 | 久久精品视频免费 | 欧美成人精品第一区首页 | jizzjizz丝袜老师 | 国产中文一区 | 免费一级在线 | 欧美久操| 国产一区欧美 | 草草影院国产第一页 | 欧美日韩视频 | 九九热国产在线 | 91在线 | porny | 欧美 | 精品久久久久久久 | 欧美日韩一区二区三区在线观看 | 老牛影视av一区二区在线观看 | 99av.com| 欧美二区在线 | 青草香蕉精品视频在线观看 | 亚洲成人精品在线观看 | 性色屋| 国产精品久久久久秋霞影视 | 亚洲精品乱码久久久久久 | 国产成人精品日本亚洲11 | 亚洲美女亚洲精品久久久久 | 天天操天天干天天 | 国产成人精品一区二区三区四区 | 中文字幕亚洲一区二区三区 | 欧美国产视频 | 九九99久久精品在免费线bt | 午夜你懂得 |