pandas_排序function

import pandas as pd
df=pd.read_csv('dataAnalyst_sql.csv')
df.info()     #查询表格信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5031 entries, 0 to 5030
Data columns (total 12 columns):
positionId           5031 non-null int64
city                 5031 non-null object
companyId            5031 non-null int64
firstType            5027 non-null object
secondType           5028 non-null object
education            5031 non-null object
industryField        5031 non-null object
positionAdvantage    5031 non-null object
positionName         5031 non-null object
positionLables       5007 non-null object
salary               5031 non-null object
workYear             5031 non-null object
dtypes: int64(2), object(10)
memory usage: 471.7+ KB
df.head() #查询前5条
positionIdcitycompanyIdfirstTypesecondTypeeducationindustryFieldpositionAdvantagepositionNamepositionLablessalaryworkYear
02537336上海8581技术数据开发硕士移动互联网知名平台数据分析师['分析师', '数据分析', '数据挖掘', '数据']7k-9k应届毕业生
12427485上海23177技术数据开发本科金融挑战机会,团队好,与大牛合作,工作环境好数据分析师-CR2017-SH2909['分析师', '数据分析', '数据挖掘', '数据']10k-15k应届毕业生
22511252上海57561设计数据分析本科移动互联网时间自由,领导nic数据分析师['分析师', '数据分析', '数据']4k-6k应届毕业生
32427530上海7502市场与销售数据分析本科企业服务,数据服务五险一金 绩效奖金 带薪年假 节日福利大数据业务分析师【数云校招】['商业', '分析师', '大数据', '数据']6k-8k应届毕业生
42245819上海130876技术软件开发本科其他在大牛下指导BI开发/数据分析师['分析师', '数据分析', '数据', 'BI']2k-3k应届毕业生
df.tail() #查询后5条
positionIdcitycompanyIdfirstTypesecondTypeeducationindustryFieldpositionAdvantagepositionNamepositionLablessalaryworkYear
50262582910北京3786开发/测试/运维类数据开发本科移动互联网,金融大牛团队,互联网金融,零食水果,灵活工时BI数据分析师['数据分析', '数据', 'BI', '分析师', '商业智能']15k-25k3-5年
50272583183北京59239开发/测试/运维类软件开发本科金融五险一金,年底奖金大数据风控研发工程师['专家', '高级', '软件开发']15K-30K3-5年
50281832950北京50702技术数据开发本科移动互联网,O2O期权高级数据技术专家['数据挖掘', '数据']30k-40k5-10年
50292582349北京156832市场/商务/销售类销售不限金融周末双休/高提成/每月员工趴分析师助理/销售人员['顾问', '销售', '分析师']4k-6k不限
50301757974北京1575技术高端技术职位本科移动互联网,数据服务大公司,高福利,互联网数据团队,机会多数据仓库建模工程师['数据仓库', '数据', '建模']15k-30k不限
df.query('positionId>12345')   #进行查询

pandas高阶函数(1)排序函数

df.T()   #进行行列转换

Type: property
String form: <property object at 0x0000000007A56DB8>
Docstring: Transpose index and columns.

(1)sort_values() #对指定内容进行排序

df.sort_values(by='workYear')   #指定workYear进行升序排序(默认升序)
df.sort_values(by='workYear',ascending=False)   #指定workYear进行降序排序

Signature: df.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)

Docstring:Sort by the values along either axis

df.workYear.sort_values()   #指定workYear进行升序排序  返回数组
df.sort_values(['city','positionId'],ascending=False)   #指定'city','positionId'进行降序排序

(2)sort_index() #对索引进行排序

df.sort_index() #对索引进行排序

Signature: df.sort_index(axis=0, level=None, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’, sort_remaining=True, by=None)
Docstring:Sort object by labels (along an axis)

(3)rank() #排名排在什么档次

df['rank']=df.city.rank()    #对city进行排名并赋值最后一列'rank'  默认升序
df['rank']=df.city.rank(ascending=False)    #对city进行排名并赋值最后一列'rank'  降序
df
df['rank']=df.city.rank(ascending=False,method=)    # 当有多个值相等排序时 method 的默认值是'average'
df['rank']=df.city.rank(ascending=False,method='max')    # 全部都是最大标签
df['rank']=df.city.rank(ascending=False,method='min')   # 全部都是最小标签
df['rank']=df.city.rank(ascending=False,method='first')   # 正常顺序标签

Signature: df.city.rank(axis=0, method=‘average’, numeric_only=None, na_option=‘keep’, ascending=True, pct=False)

(4)unique() #排除重复值,查询唯一值

df.city.unique()    #查询有哪些城市
array(['上海', '深圳', '北京', '广州', '杭州', '成都', '南京', '武汉', '西安', '厦门', '长沙',
       '苏州', '天津'], dtype=object)

(5) value_counts()

df.city.value_counts()    #查询对值进行计数   
北京    2347
上海     979
深圳     527
杭州     406
广州     335
成都     135
南京      83
武汉      69
西安      38
苏州      37
厦门      30
长沙      25
天津      20
Name: city, dtype: int64

Signature: df.city.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)

Docstring:Returns object containing counts of unique values.

value_counts 是针对数组,而不能对数据框进行操作

(6) describe()

df.describe()    #进行基本的统计汇总函数
df.positionId.describe()    #对指定进行基本的统计
positionIdcompanyIdrank
count5.031000e+035031.0000005031.0000
mean2.185057e+0657247.5815942516.0000
std4.501199e+0547585.5684141369.5695
min8.030700e+0443.00000013.0000
25%2.044390e+0614883.0000001405.0000
50%2.348871e+0647063.0000002879.0000
75%2.494286e+06100149.0000002879.0000
max2.583183e+06157744.0000004542.0000

其他统计函数:

df.sum() #求和

df.mean() #均值

df.median() #中位数

df.std() #标准差

df.var() #方差

##但是一般还是较多使用 describe()

分析师:info–head–describe

(7) cumsum() #累加消费

df.avg.cumsum()    #一般是针对消费数据
df['cumsum']=df.avg.cumsum()    #赋值

(8) cut() #进行分段处理 分统处理

df.cut()   #cut是在pandas下面,而不是在DataFrame下面   (×)
pd.cut(df.positionId,bins=20)   #bins=20 分段间隔   labels  分类标签

Signature: pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates=‘raise’)

Docstring:Bin values into discrete intervals.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值