pandas用法

import pandas as pd
pandas中的数据结构¶
series
#创建series
from pandas import Series
obj=Series([4,7,5,3])
print(obj)#类似于时间序列
0    4
1    7
2    5
3    3
dtype: int64
#index 
obj.index
RangeIndex(start=0, stop=4, step=1)
#values
obj.values
array([4, 7, 5, 3], dtype=int64)
obj2=Series([4,7,-5,3],index=['3/1','3/2','3/3','3/4'])
print(obj2)
3/1    4
3/2    7
3/3   -5
3/4    3
dtype: int64
obj2.index
Index(['3/1', '3/2', '3/3', '3/4'], dtype='object')
obj2['3/3']
-5
obj2[obj2>0]
3/1    4
3/2    7
3/4    3
dtype: int64
#in
'3/3' in obj2
True
'3/6' in obj2
False
#通过字典创建Series
dict1={'3/1':4,'3/2':7,'3/3':-5,'3/4':3}
#字典创建时把key作为索引,value作为值
print(dict1)
{'3/1': 4, '3/2': 7, '3/3': -5, '3/4': 3}
Series(dict1)
3/1    4
3/2    7
3/3   -5
3/4    3
dtype: int64
DataFrame
from pandas import DataFrame
#c创建数据库
#定义2个列表
position=['产品经理','数据分析师','UI','产品经理','开发']
print(position)
['产品经理', '数据分析师', 'UI', '产品经理', '开发']
company=['百度','360','360','阿里','58']
print(company)
['百度', '360', '360', '阿里', '58']
DataFrame([position,company])
0	1	2	3	4
0	产品经理	数据分析师	UI	产品经理	开发
1	百度	360	360	阿里	58
jobInfo=DataFrame([position,company]).T
jobInfo
0	1
0	产品经理	百度
1	数据分析师	360
2	UI	360
3	产品经理	阿里
4	开发	58
#columns
jobInfo.columns=['职位名','公司名']
jobInfo
职位名	公司名
0	产品经理	百度
1	数据分析师	360
2	UI	360
3	产品经理	阿里
4	开发	58
#index
jobInfo.index=['a','b','c','d','e']
jobInfo
职位名	公司名
a	产品经理	百度
b	数据分析师	360
c	UI	360
d	产品经理	阿里
e	开发	58
#reset index 重置索引
jobInfo.reset_index()
index	职位名	公司名
0	a	产品经理	百度
1	b	数据分析师	360
2	c	UI	360
3	d	产品经理	阿里
4	e	开发	58
jobInfo.reset_index(drop=True)
职位名	公司名
0	产品经理	百度
1	数据分析师	360
2	UI	360
3	产品经理	阿里
4	开发	58
#head
jobInfo.head(3)#显示前三行数据
职位名	公司名
0	产品经理	百度
1	数据分析师	360
2	UI	360
#tail
jonInfo.tail(2)#显示后2行数据
0	1
d	产品经理	阿里
e	开发	58
#要获取其中某列的值:第一种方法
jobInfo['职位名']
0     产品经理
1    数据分析师
2       UI
3     产品经理
4       开发
Name: 职位名, dtype: object
#要获取其中某列的值:第二种方法
jobInfo.职位名
0     产品经理
1    数据分析师
2       UI
3     产品经理
4       开发
Name: 职位名, dtype: object
#获取某一行的值:第一种方法
jobInfo.loc['c']
职位名     UI
公司名    360
Name: c, dtype: object
jobInfo.iloc[2]
职位名     UI
公司名    360
Name: c, dtype: object
一些基本功能
#创建一个数组
import numpy as np
np.arange(16)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
data=np.arange(16).reshape(4,4)
data
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
df=DataFrame(data=data,index=['a','b','c','d'],columns=['one','two','three','four'])
df
one	two	three	four
a	0	1	2	3
b	4	5	6	7
c	8	9	10	11
d	12	13	14	15
#丢弃制定轴上的项
df.drop('b')#删除b行
one	two	three	four
a	0	1	2	3
c	8	9	10	11
d	12	13	14	15
df.drop('one',axis=1)#axis=1表示案列执行
two	three	four
a	1	2	3
b	5	6	7
c	9	10	11
d	13	14	15
#查找列four值为7的记录
df[df['four']==7]
one	two	three	four
b	4	5	6	7
#唯一值,unique
obj=Series([1,2,2,3,3,4,5,5,5])
print(obj)
0    1
1    2
2    2
3    3
4    3
5    4
6    5
7    5
8    5
dtype: int64
obj.unique()#去重之后的数值
array([1, 2, 3, 4, 5], dtype=int64)
#频率统计,value.counts
obj.value_counts()#频率从高到低排序
5    3
3    2
2    2
4    1
1    1
dtype: int64
obj.value_counts(sort=False)#频率不排序
1    1
2    2
3    2
4    1
5    3
dtype: int64
常用数学和统计函数
df
one	two	three	four
a	0	1	2	3
b	4	5	6	7
c	8	9	10	11
d	12	13	14	15
#describe,描述性统计分析
df.describe()
one	two	three	four
count	4.000000	4.000000	4.000000	4.000000
mean	6.000000	7.000000	8.000000	9.000000
std	5.163978	5.163978	5.163978	5.163978
min	0.000000	1.000000	2.000000	3.000000
25%	3.000000	4.000000	5.000000	6.000000
50%	6.000000	7.000000	8.000000	9.000000
75%	9.000000	10.000000	11.000000	12.000000
max	12.000000	13.000000	14.000000	15.000000
#求和
df.sum()
one      24
two      28
three    32
four     36
dtype: int64
#累计求和,cunsum
df.cumsum()
one	two	three	four
a	0	1	2	3
b	4	6	8	10
c	12	15	18	21
d	24	28	32	36
jobInfo
职位名	公司名
a	产品经理	百度
b	数据分析师	360
c	UI	360
d	产品经理	阿里
e	开发	58
#非数值型的描述型分析
jobInfo.describe()
#unique表示不重复个数,top表示频率最高的
职位名	公司名
count	5	5
unique	4	4
top	产品经理	360
freq	2	2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值