1. Series
类似于一维数组的对象: 由一组数据(各种numpy对象)和一组与之相关的索引组成。分别有两个属性,.values 和 .index
(1)创建Series
- 直接定义,包括定义index
- 输入一个dict,转成Series
import pandas as pd
from pandas import DataFrame,Series
import numpy as np
from numpy import random
#直接定义Series
obj=Series([-4,7,8,9],index=['a','b','c','d'])
#用字典创建Series
dict={
'a':-4,'b':7,'c':8,'d':9}
obj1=Series(dict)
(2)利用索引查找数据
obj['a']
obj[['a','b']]
a -4
b 7
dtype: int64
(3)利用布尔型索引过滤数据
obj[obj>0]
b 7
c 8
d 9
dtype: int64
(4)Series自动对齐不同索引数据
- 重传index到已有index的Series,或者dict中,则values会自动与index对齐。(找不到values的index,会填充NAN)
#在有index的Series传入index
obj1=Series(obj,index=['c','d','e','f'])
#在有index的dict传入index
obj2=Series(dict,index=['c','d','e','f'])
2. DataFrame
是表格型数据结构,含有一组有序的列,每列可以是不同的值类型。
可看作是由一组Series组成(共用同一个索引)
(1)创建DataFrame
- 直接定义,包括index,columns
- 输入一个有列表或者numpy数组的dict,转成DataFrame
#直接定义
data = [[1,2,3],[4,5,6]]
index = [0,1]
columns=['a','b','c']
df = pd.DataFrame(data=data, index=index, columns=columns)
#利用dict转成DataFrame
dict={
'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}
df1=DataFrame(dict,index=['one','two','three'])
(2)利用列名取数据
- 通过列名或者属性的方式可以从DataFrame获取一组Series
df1['a']
df1.a
one 1
two 2
three 3
Name: a, dtype: int64
(3)赋值、创建新列
df1['a']=1
df1['d']=4
(4)删除列
del df1['d']
3.Series和DataFrame基本功能
(1)重新索引
.reindex() * 可以重新索引行和列,对数据重新排列。 * 若索引无对应数据,可以填充插值,插值默认为空.参数method、fill_value分别用于 插值方式和 设置缺失值的替代值
df2=df1.reindex(index=['two','one','four','three'],columns=['b','c','a','e'],fill_value=22)
print (df2)
b c a e
two 5 8 1 22
one 4 7 1 22
four 22 22 22 22
three 6 9 1 22
(2)删除某一行或某一列
* 删除行可以直接写入 index的名字 * 删除列除了写入columns名,还需要指定axis
df3=df2.drop('four')
df3=df2.drop('e',axis=1)
(3) 索引
* Series的索引,可用Index ,也可用数字下标s1=df3['b']
s1['two']
s1[['two','one']] # 用数组列出,要用[ ]括起来
s1