pandas的基本功能

一、重建索引
(一)reindex(行索引)
1、是pandas对象的重要方法,用于创建一个符合新索引的新对象,注意:Series调用reindex方法时,会将数据按照新的索引进行排列,如果某个索引值之前并不存在,则会引入缺失值。
import pandas as pd
passion=pd.Series([4.5,7.2,-5.3,3.6],index=[‘d’,‘b’,‘a’,‘c’])
print(passion)
passion1=passion.reindex([‘a’,‘b’,‘c’,‘d’,‘e’])
print(passion1)
返回值为
d 4.5
b 7.2
a -5.3
c 3.6
dtype: float64
a -5.3
b 7.2
c 3.6
d 4.5
e NaN
dtype: float64
2、插值:在重建索引时需要插值的,method可选参数允许使用ffill方法会将值前向填充,其中要求索引必须是数字,而且必须是递增或递减的顺序。
import pandas as pd
passion=pd.Series([4.5,7.2,-5.3,3.6],index=[‘0’,‘2’,‘4’,‘6’])
print(passion)
passion1=passion.reindex([‘0’,‘1’,‘2’,‘4’,‘6’],method=‘ffill’)
print(passion1)
返回值
0 4.5
2 7.2
4 -5.3
6 3.6
dtype: float64
0 4.5
1 4.5
2 7.2
4 -5.3
6 3.6
3、配合关键字columns使用转为列索引
import pandas as pd
frame=pd.DataFrame(np.arange(9).reshape((3,3)),index=[‘a’,‘c’,‘d’],columns=[‘ohio’,‘texas’,‘california’])
print(frame)
states=[‘texas’,‘utah’,‘california’]
frame1=frame.reindex(columns=states)
print(frame1)
返回值为
ohio texas california
a 0 1 2
c 3 4 5
d 6 7 8
texas utah california
a 1 NaN 2
c 4 NaN 5
d 7 NaN 8
二、轴向上删除条目
.drop
例如:
import pandas as pd
frame=pd.DataFrame(np.arange(9).reshape((3,3)),index=[‘a’,‘c’,‘d’],columns=[‘ohio’,‘texas’,‘california’])
print(frame.drop(‘a’))
返回值为
ohio texas california
c 3 4 5
d 6 7 8
三、索引、选择与过滤
(一)索引obj[…]
#普通Python切片中是不包含尾部的,但Series的切片包含尾部,而且使用切片进行赋值时会修改Series的相应部分
pandas的基本功能_第1张图片
import pandas as pd
import numpy as np
passion=pd.Series(np.arange(4.),index=[‘a’,‘b’,‘c’,‘d’])
print(passion)
print(’=’*15)
print(passion[‘b’:‘c’])
print(’=’*15)
passion[‘b’:‘c’]=5 #切片赋值
print(passion) #切片赋值后原值改变
返回值为
a 0.0
b 1.0
c 2.0
d 3.0
dtype: float64

b 1.0
c 2.0
dtype: float64

a 0.0
b 5.0
c 5.0
d 3.0
dtype: float64
(二)使用轴标签loc和整数标签iloc选择数据
import pandas as pd
import numpy as np
data=pd.DataFrame(np.arange(16).reshape((4,4)),index=[‘ohio’,‘colorado’,‘utah’,‘new york’],
columns=[‘one’,‘two’,‘three’,‘four’])
print(data)
print(’=’*30)
print(data.loc[‘colorado’,[‘two’,‘three’]]) #先对colorado进行选择,再进行’two’,'three’选择
返回值为
one two three four
ohio 0 1 2 3
colorado 4 5 6 7
utah 8 9 10 11
new york 12 13 14 15

two 5
three 6
Name: colorado, dtype: int32
四、算术和数据对齐
(一)Series和DataFrame相加返回的是索引和列的并集,没有交叠的标签位置上,内部数据对齐会产生缺失值
例如:
s1=pd.Series([7.3,-2.5,3.4,1.5],index=[‘a’,‘c’,‘d’,‘e’])
s2=pd.Series([-2.1,3.6,-1.5,4,3.1],index=[‘a’,‘c’,‘e’,‘f’,‘g’])
print(s1)
print(s2)
print(s1+s2)
返回值为
a 7.3
c -2.5
d 3.4
e 1.5
dtype: float64
a -2.1
c 3.6
e -1.5
f 4.0
g 3.1
dtype: float64
a 5.2
c 1.1
d NaN
e 0.0
f NaN
g NaN
dtype: float64
(二)缺失值的处理用fill_value作为参数传入
s1=pd.Series([7.3,-2.5,3.4,1.5],index=[‘a’,‘c’,‘d’,‘e’])
s2=pd.Series([-2.1,3.6,-1.5,4,3.1],index=[‘a’,‘c’,‘e’,‘f’,‘g’])
print(s1)
print(s2)
print(s1.add(s2,fill_value=0))
返回值为
a 7.3
c -2.5
d 3.4
e 1.5
dtype: float64
a -2.1
c 3.6
e -1.5
f 4.0
g 3.1
dtype: float64
a 5.2
c 1.1
d 3.4
e 0.0
f 4.0
g 3.1
dtype: float64
(三)Series和DataFrame的算术方法
这些方法中每一个都有一个以r开头的副本,这些副本方法的参数是翻转的
例如:
1/df 与df.rdiv(1)等价
pandas的基本功能_第2张图片
五、DataFrame和Series之间的操作
原理:广播机制,即当DataFrame加减Series的时候是DataFrame的每一行都加减对应Series位置的数值,如果一个索引值不在DataFrame或Series的索引中,则对象会重建索引并产生缺失值
六、函数应用和映射
(一)Numpy的通用函数对pandas的对象也有效
例如: np.abs(frame)
(二)将函数应用到一行或一列的一位数组上进行操作
例如:
f=lambda x: x.max()-x.min()
frame.apply(f) #表示在frame的每一列上执行列表表达式f,默认是对列进行操作,如果要行进行操作则设置axis=columns
六、排序
(一)根据索引排序(默认升序排序,也可以通过ascending=False制定按照降序排序)
s=pd.Series(range(4),index=[‘d’,‘a’,‘b’,‘c’])
print(s)
s.sort_index()
print(s.sort_index())
返回值
d 0
a 1
b 2
c 3
dtype: int64
a 1
b 2
c 3
d 0
dtype: int64
(二)根据值排序.sort_values()
默认情况下,所有的缺失值都会被排到尾部,对DataFrame进行排序时,可以使用一列或多列作为排序键,通过.sort_values(by=‘column’)来实现
七、检索重复标签的轴索引
.is_unique

你可能感兴趣的:(python,pandas)