-
from pandas import Series ,DataFrame 引入两个常用的工具数据结构
-
Series:
)1.传入列表(自动生成索引,或通过index生成指定索引)
obj = Series([1 , 4 , 9 , 16]) print(obj) 0 1 1 4 2 9 3 16 dtype: int64 obj = Series([1,4,9,16],index=['一','四','九','十六']) print(obj) 一 1 四 4 九 9 十六 16 dtype: int64
)2.传入字典(键为索引,字典值为值)
obj = Series({'a':'1,2,3','b':'1'}) print(obj) a 1,2,3 b 1 dtype: object
DataFrame:
)1.传入嵌套等长列表的字典(键为列名,字典值为值,自动生成索引,可以通过index指定列名)
obj = DataFrame({'a':['A','A','A'],'b':['B','B','B'],'c':['C','C','C']}) print(obj) a b c 0 A B C 1 A B C 2 A B C
)2.传入包含NumPy数组的字典或直接传入Numpy数组
obj = DataFrame({'a':np.arange(3),'b':np.arange(3),'c':np.arange(3)}) print(obj) a b c 0 0 0 0 1 1 1 1 2 2 2 2
)3.传入嵌套字典的字典(外部键为列名,内部键为索引)
obj = DataFrame({'a':{'A':'aA','B':'aB','C':'aC'},'b':{'A':'bA','B':'bB','C':'bC'},'c':{'A':'cA','B':'cB','C':'cC'}}) print(obj) a b c A aA bA cA B aB bB cB C aC bC cC
-
Series的一些操作
1.类似于NumPy的操作 obj = Series([1,4,9,16],index=['一','四','九','十六']) print(obj[obj>8]) 九 9 十六 16 dtype: int64 obj = Series([1,4,9,16],index=['一','四','九','十六']) print(obj*8) 一 8 四 32 九 72 十六 128 dtype: int64 2.用NaN来表示残缺值 data = ['一','九','四','六'] obj = Series([1,4,9,16],index=['一','四','九','十六']) obj2 = Series(obj,index=data) print(obj2) 一 1.0 九 9.0 四 4.0 六 NaN dtype: float64 3.自动对齐索引 +: 双方共同的索引的话,值会相加;只有一方有,则会显示NaN data = ['一','九','四','六'] obj = Series([1,4,9,16],index=['一','二','三','四']) obj2 = Series([-1,-4,-9,-16],index=['一','二','三','五']) print(obj+obj2) 一 0.0 三 0.0 二 0.0 五 NaN 四 NaN dtype: float64 4.Series对象和索引的name属性 data = ['一','九','四','六'] obj = Series([1,4,9,16],index=['一','二','三','四']) obj.name='zxw' obj.index.name = 'num' print(obj) num 一 1 二 4 三 9 四 16 Name: zxw, dtype: int64
-
DataFrame的一些操作
1.DataFrame有行索引和列索引。 行索引用columns来指定,列索引用index来指定 obj = DataFrame(np.arange(16).reshape((4,4)),index=['1','2','3','4'],columns=['一','二','三','四'] ) print(obj) 一 二 三 四 1 0 1 2 3 2 4 5 6 7 3 8 9 10 11 4 12 13 14 15 2.DataFrame可以看成是很多Series组成的,DataFrame可以按字典标记或者属性那样检索为Series obj = DataFrame(np.arange(16).reshape((4,4)),index=['1','2','3','4'],columns=['一','二','三','四'] ) 一 二 三 四 1 0 1 2 3 2 4 5 6 7 3 8 9 10 11 4 12 13 14 15 print(obj['一']) 1 0 2 4 3 8 4 12 Name: 一, dtype: int32 print(obj.一) 1 0 2 4 3 8 4 12 Name: 一, dtype: int32 3.loc(按名称选取行),iloc(按序号选取行):选取行 print(obj.loc['1']) 一 0 二 1 三 2 四 3 Name: 1, dtype: int32 4.del:删除列,只能用来删除列! del obj['一'] print(obj) 二 三 四 1 1 2 3 2 5 6 7 3 9 10 11 4 13 14 15
-
pandas的基本功能
1.reindex reindex用于创建一个拥有新索引的新对象:会按照新的索引进行排序;只会出现新的索引值;某个索引值之前不存在则会引入缺少值NaN. 2.drop:返回一个新对象 在Series中通过obj.drop('行索引')来删除某行,也可传入列表来删除多行 在Series中还需要指定asix参数,不指定默认为0,即删除列;指定为1或columns删除某行。 3.Series的切片索引包含尾部! 4.loc(x,y):选择名称为x的行,名称为y的列 iloc(num1,num2):选择序号为num1的行,序号为num2的列 5.算术和数据对齐 6.fill_value用于指定填充值,将填充值与现有的值相加 obj = DataFrame(np.arange(16).reshape((4,4)),index=['1','2','3','4'],columns=['一','二','三','四'] ) obj1 = DataFrame(np.arange(16).reshape((4,4)),index=['1','3','6','9'],columns=['一','二','三','四'] ) print(obj+obj1) 一 二 三 四 1 0.0 2.0 4.0 6.0 2 NaN NaN NaN NaN 3 12.0 14.0 16.0 18.0 4 NaN NaN NaN NaN 6 NaN NaN NaN NaN 9 NaN NaN NaN NaN print(obj.add(obj1,fill_value=0)) 一 二 三 四 1 0.0 2.0 4.0 6.0 2 4.0 5.0 6.0 7.0 3 12.0 14.0 16.0 18.0 4 12.0 13.0 14.0 15.0 6 8.0 9.0 10.0 11.0 9 12.0 13.0 14.0 15.0 6.apply:将函数应用到一行或一列的一维数组上。 obj = DataFrame(np.arange(16).reshape((4,4)),index=['1','2','3','4'],columns=['一','二','三','四'] ) f = lambda x:x.max()-x.min() print(obj.apply(f)) 一 12 二 12 三 12 四 12 dtype: int64 print(obj.apply(f,axis=1)) 1 3 2 3 3 3 4 3 dtype: int64 7.排序 )1.Series obj.sort_index() obj.sort_value() )2.DataFrame obj.sort_index(axis=?) obj.sort_value(by=?):通过给哪一列或几列排序,确定整体的顺序 8.排名
pandas入门
最新推荐文章于 2024-07-22 21:21:17 发布