我是靠谱客的博主 活泼刺猬,最近开发中收集的这篇文章主要介绍Pandas Cut 与dataframe随机抽取(sample)替换(replace)应用案例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['STFangsong']
plt.rcParams['axes.unicode_minus'] = False
%config InlineBackend.figure_format = 'svg'

cut 使用

df = pd.read_csv('../files/data/2018年北京积分落户数据.csv',encoding = 'utf-8',index_col = 'id')
df
namebirthdaycompanyscore
id
1杨效丰1972-12北京利德华福电气技术有限公司122.59
2纪丰伟1974-12北京航天数据股份有限公司121.25
3王永1974-05品牌联盟(北京)咨询股份公司118.96
4杨静1975-07中科专利商标代理有限责任公司118.21
5张凯江1974-11北京阿里巴巴云计算技术有限公司117.79
...............
6015孙宏波1978-08华为海洋网络有限公司北京科技分公司90.75
6016刘丽香1976-11福斯(上海)流体设备有限公司北京分公司90.75
6017周崧1977-10赢创德固赛(中国)投资有限公司90.75
6018赵妍1979-07澳科利耳医疗器械(北京)有限公司90.75
6019贺锐1981-06北京宝洁技术有限公司90.75

6019 rows × 4 columns

from datetime import datetime
date = pd.to_datetime(df.birthday)
df['age'] = (datetime(2018,7,1) - date).dt.days // 365
df
namebirthdaycompanyscoreage
id
1杨效丰1972-12北京利德华福电气技术有限公司122.5945
2纪丰伟1974-12北京航天数据股份有限公司121.2543
3王永1974-05品牌联盟(北京)咨询股份公司118.9644
4杨静1975-07中科专利商标代理有限责任公司118.2143
5张凯江1974-11北京阿里巴巴云计算技术有限公司117.7943
..................
6015孙宏波1978-08华为海洋网络有限公司北京科技分公司90.7539
6016刘丽香1976-11福斯(上海)流体设备有限公司北京分公司90.7541
6017周崧1977-10赢创德固赛(中国)投资有限公司90.7540
6018赵妍1979-07澳科利耳医疗器械(北京)有限公司90.7539
6019贺锐1981-06北京宝洁技术有限公司90.7537

6019 rows × 5 columns

bins = np.arange(30,61,5)
box = pd.cut(df.age,bins,right = False)
ser = df.groupby(box).name.count()
ser
age
[30, 35)      35
[35, 40)    1449
[40, 45)    3637
[45, 50)     878
[50, 55)      16
[55, 60)       3
Name: name, dtype: int64
ser.plot(kind = 'bar')
plt.xticks(rotation = 0)
for i in range(ser.size):
    plt.text(i,ser[i]+30,ser[i],ha = 'center')   #数字居中显示
plt.show()


output_6

sample 使用

# 随机抽取200条数据
df.sample(n = 200)
namebirthdaycompanyscoreage
id
2216台令娟1977-09北京市君合律师事务所95.8840
4187陈琛1974-10中交远洲信息技术(北京)股份有限公司92.7143
2037杨正兵1979-07北京金水桥工程技术咨询有限公司96.2539
2874马紫雯1980-03中央电视台94.6738
3046张云龙1977-09北京联恒创业科技有限公司94.3840
..................
1065王胜美1975-03毕马威华振会计师事务所(特殊普通合伙)99.4143
1547王伟1976-09北京中软国际信息技术有限公司97.6241
5233燕宇飞1983-08百度在线网络技术(北京)有限公司91.5534
5769王翼昕1979-04北京数字中远网络技术服务有限公司90.9939
2237杜虎1978-05中节能太阳能科技有限公司95.8440

200 rows × 5 columns

# 随机抽取x%的数据
# obj.sample(frac = 0.x)
df.sample(frac=0.1)
namebirthdaycompanyscoreage
id
5384高燕1980-11腾讯科技(北京)有限公司91.3837
3539张正国1980-06阿里巴巴(北京)软件服务有限公司93.6338
4554张仁1974-12冠捷显示科技(中国)有限公司92.2943
4126李吉友1974-10北京华为数字技术有限公司92.8343
3657张宁1975-07北京兴润诚会计师事务所(普通合伙)93.4643
..................
2558韩淼1978-09耐瑞唯信(北京)技术有限公司95.2539
3482许春实1974-03北京三星鹏泰技术咨询有限公司93.7144
1282刘芳1977-01亚信科技(成都)有限公司北京分公司98.5041
1667董洪1975-04中央电视台97.2943
2632苏波1976-08北京亿云力科技有限公司95.0941

602 rows × 5 columns

dataframe.replace(0,5)将DataFrame中0替换为5

dataframe.replace([0,1,2,3],[4,3,2,1])将DataFrame中[0,1,2,3]分别替换为[4,3,2,1]

dataframe.replace(to_replace = r’正则表达式’,value = 要替换的值,regex = True)
等价于
dataframe.replace(regex = r’正则表达式’,value = 要替换的值)

dataframe.replace({‘A’:r’正则表达式’},{‘A’:‘new_value’}) - 将A列的满足正则条件的值替换为新值

最后

以上就是活泼刺猬为你收集整理的Pandas Cut 与dataframe随机抽取(sample)替换(replace)应用案例的全部内容,希望文章能够帮你解决Pandas Cut 与dataframe随机抽取(sample)替换(replace)应用案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部