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条
positionId | city | companyId | firstType | secondType | education | industryField | positionAdvantage | positionName | positionLables | salary | workYear | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2537336 | 上海 | 8581 | 技术 | 数据开发 | 硕士 | 移动互联网 | 知名平台 | 数据分析师 | ['分析师', '数据分析', '数据挖掘', '数据'] | 7k-9k | 应届毕业生 |
1 | 2427485 | 上海 | 23177 | 技术 | 数据开发 | 本科 | 金融 | 挑战机会,团队好,与大牛合作,工作环境好 | 数据分析师-CR2017-SH2909 | ['分析师', '数据分析', '数据挖掘', '数据'] | 10k-15k | 应届毕业生 |
2 | 2511252 | 上海 | 57561 | 设计 | 数据分析 | 本科 | 移动互联网 | 时间自由,领导nic | 数据分析师 | ['分析师', '数据分析', '数据'] | 4k-6k | 应届毕业生 |
3 | 2427530 | 上海 | 7502 | 市场与销售 | 数据分析 | 本科 | 企业服务,数据服务 | 五险一金 绩效奖金 带薪年假 节日福利 | 大数据业务分析师【数云校招】 | ['商业', '分析师', '大数据', '数据'] | 6k-8k | 应届毕业生 |
4 | 2245819 | 上海 | 130876 | 技术 | 软件开发 | 本科 | 其他 | 在大牛下指导 | BI开发/数据分析师 | ['分析师', '数据分析', '数据', 'BI'] | 2k-3k | 应届毕业生 |
df.tail() #查询后5条
positionId | city | companyId | firstType | secondType | education | industryField | positionAdvantage | positionName | positionLables | salary | workYear | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
5026 | 2582910 | 北京 | 3786 | 开发/测试/运维类 | 数据开发 | 本科 | 移动互联网,金融 | 大牛团队,互联网金融,零食水果,灵活工时 | BI数据分析师 | ['数据分析', '数据', 'BI', '分析师', '商业智能'] | 15k-25k | 3-5年 |
5027 | 2583183 | 北京 | 59239 | 开发/测试/运维类 | 软件开发 | 本科 | 金融 | 五险一金,年底奖金 | 大数据风控研发工程师 | ['专家', '高级', '软件开发'] | 15K-30K | 3-5年 |
5028 | 1832950 | 北京 | 50702 | 技术 | 数据开发 | 本科 | 移动互联网,O2O | 期权 | 高级数据技术专家 | ['数据挖掘', '数据'] | 30k-40k | 5-10年 |
5029 | 2582349 | 北京 | 156832 | 市场/商务/销售类 | 销售 | 不限 | 金融 | 周末双休/高提成/每月员工趴 | 分析师助理/销售人员 | ['顾问', '销售', '分析师'] | 4k-6k | 不限 |
5030 | 1757974 | 北京 | 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() #对指定进行基本的统计
positionId | companyId | rank | |
---|---|---|---|
count | 5.031000e+03 | 5031.000000 | 5031.0000 |
mean | 2.185057e+06 | 57247.581594 | 2516.0000 |
std | 4.501199e+05 | 47585.568414 | 1369.5695 |
min | 8.030700e+04 | 43.000000 | 13.0000 |
25% | 2.044390e+06 | 14883.000000 | 1405.0000 |
50% | 2.348871e+06 | 47063.000000 | 2879.0000 |
75% | 2.494286e+06 | 100149.000000 | 2879.0000 |
max | 2.583183e+06 | 157744.000000 | 4542.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.