注:此系列参考了梁斌老师的课件和《利用Python进行数据分析》一书。
另外发现了一个小坑:在用notebook导入到csdn中时,是需要先转存为md格式的文件,而且在输出一栏后都要加上一个回车,不然会在csdn的markdown中显示错误,大家可以注意一下。
Pandas数据操作
索引
表:Index的方法和属性
方法 | 说明 |
---|---|
append | 连接另一个Index对象,产生一个新的Index对象 |
diff | 计算差集,并得到一个index |
intersection | 计算交集 |
union | 计算并集 |
isin | 计算一个指示各值是否都包含在参数集合中的布尔型数组 |
delete | 删除索引i处的元素,并得到新的index |
drop | 删除传入的值,并得到新的index |
insert | 将元素插入到索引i处,并得到新的index |
is_monotonic | 当个元素均大于等于前一个元素时,返回true |
in_unique | 当index没有重复值时,返回true |
unique | 计算index中唯一值的数组 |
import pandas as pd
Series索引
关于它的索引其实和Python里其他可迭代的对象索引规则差不多,包括序号索引、切片索引和不连续索引,此处不再过多赘述,值得注意的是以下几种索引
# 布尔索引
ser_bool = ser_obj > 2
print(ser_bool)
print(ser_obj[ser_bool])
print(ser_obj[ser_obj > 2])
a False
b False
c False
d True
e True
dtype: bool
d 3
e 4
dtype: int32
d 3
e 4
dtype: int32
表: DataFrame索引
类型 | 说明 |
---|---|
co | aligned |
obj[val] | 选取DataFrame的单个列或者一组列,在一些特殊情况下会比较便利:布尔型数组(过滤行)、切片(行切片)、布尔型DataFrame(根据条件设置值) |
obj.ix[val] | 选取DataFrame的单个行或一组行 |
obj.ix[:,val] | 选取单个列或列子集 |
obj.ix[val1,val2] | 同时选组行和列 |
reindex方法 | 将一个或多个轴匹配到新索引 |
xs方法 | 根据标签选取单行或单列,并返回一个series |
icol、irow方法 | 根据证书位置选取单列或单行,并返回一个series |
get_value、 set_value方法 | 根据行标签和列标签选取单个值 |
import numpy as np
df_obj = pd.DataFrame(np.random.randn(5,4), columns = ['a', 'b', 'c', 'd'])
print(df_obj.head())
a b c d
0 0.517213 -1.370594 1.937338 -0.541914
1 1.824929 -0.011277 0.071104 0.786259
2 -0.971734 0.186685 -1.048862 -1.145520
3 -0.629289 0.107450 0.192336 1.351482
4 -0.885874 -0.750596 -0.036246 1.189736
# 列索引
print('列索引')
print(df_obj['a']) # 返回Series类型
print(type(df_obj[