pandas基于Numpy构建,最初被作为金融数据分析工具使用因此pandas为时间序列分析做了很好的支持。
pandas的两种数据结构:Series和DataFrame
一、Series (index,value)
import pandas as pd
from pandas import Series
# 创建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
RangeIndex(start=0, stop=4, step=1)
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.values
array([ 4, 7, -5, 3], dtype=int64)
obj2[obj2>0]
3/1 4
3/2 7
3/4 3
dtype: int64
#in
print('3/3'in obj2)
print('3/6' in obj2)
True
False
# 通过字典创建Series
dict1={'3/1':4,'3/2':7,'3/3':-5,'3/4':3}
print(dict1)
{‘3/1’: 4, ‘3/2’: 7, ‘3/3’: -5, ‘3/4’: 3}
二、DataFrame
# 导入DateFrame
from pandas import DataFrame
#定义2个列表
position=['产品经理','数据分析师','产品经理','开发','UI']
company=['百度','360','阿里','腾讯','58']
DataFrame([position,company])
#转置
jobInfo=DataFrame([position,company]).T
jobInfo
# 指定列
jobInfo.columns=['职位名','公司名']
jobInfo
#index
jobInfo.index
RangeIndex(start=0, stop=5, step=1)
jobInfo.index=['a','b','c','d','e']
jobInfo
#reset_index
jobInfo.reset_index()
#reset_index
jobInfo.reset_index(drop=True)#去掉index
#head显示前面几行
jobInfo.head(3)
#tail 显示后几行
jobInfo.tail(2)
#获取其中某一列的值
#方式一:
jobInfo["职位名"]
a 产品经理
b 数据分析师
c 产品经理
d 开发
e UI
Name: 职位名, dtype: object
#方式二:
jobInfo.职位名
a 产品经理
b 数据分析师
c 产品经理
d 开发
e UI
Name: 职位名, dtype: object
#获取某一行的值
#方式一:loc
jobInfo.loc["c"]
职位名 产品经理
公司名 阿里
Name: c, dtype: object
#方式二:
jobInfo.iloc[2]
职位名 产品经理
公司名 阿里
Name: c, dtype: object