import numpy as npimport pandas as pdseries_1 = pd.Series(range(5),index=['a','b','c','d','e'])print(series_1)#a 0#b 1#c 2#d 3#e 4#dtype: int64
1、改变初始数据不可使用索引位置(索引超出界限)
series_1['f'] = 999print(series_1)#a 0#b 1#c 2#d 3#e 4#f 999#dtype: int64
2、生成新的Series对象res = series_1.append(pd.Series({'g':888}))print(res,type(res),res is series_1,sep='n')#a 0#b 1#c 2#d 3#e 4#f 999#g 888#dtype: int64#
series_2 = pd.Series(range(5), index=['a', 'b', 'c', 'd', 'e'])del series_2['c']print(series_2)# result :a 0b 1d 3e 4dtype: int64
2、drop 生成新对象(不改变源对象)(1)删除单条数据res = series_2.drop('a')print(res,res is series_2,sep='n')# result :b 1d 3e 4dtype: int64##################################################################(2)删除多条数据res = series_2.drop(['b','d'])print(res,res is series_2,sep='n')# result :a 0e 4dtype: int64False(3) 使用inplace属性为True不生成新对象res = series_2.drop('a',inplace=True) # 此时res为None
(三) 改series_3 = pd.Series(range(5), index=['a', 'b', 'c', 'd', 'e'])print(series_3)# result:a 0b 1c 2d 3e 4dtype: int64
1、位置索引
series_3[4] = 9print(series_3)a 0b 1c 2d 3e 9dtype: int64
2、标签索引
series_3['c'] = 5print(series_3)a 0b 1c 5d 3e 4dtype: int64
(四) 查import numpy as npimport pandas as pdseries_4 = pd.Series(np.arange(5),index=['a','b','c','d','e'])print(series_4)#a 0#b 1#c 2#d 3#e 4#dtype: int32
1、获取单个或连续数据索引位置
print('''series_4[4] = ''',series_4[4])#reultseries_4[4] = 4
索引名称
print('''series_4['c'] = ''',series_4['c'])#resultseries_4['c'] = 2
位置索引 切片
不包含末位
series_4[2:4] # 数学表示为 [2,4) OR [2,3]另一种写法 : series_4.iloc[0:3])#c 2#d 3#dtype: int32
名称索引 切片
包含末位
series_4['a':'c'] # 数学表示为 ['a','c']另一种写法 : series_4.loc['a':'c']#a 0#b 1#c 2#dtype: int32
2、获取非连续数据不连续 位置索引
print(series_4[[0,2,4]])#a 0#c 2#e 4#dtype: int32
不连续 名称索引
print(series_4[['b','d']])#b 1#d 3#dtype: int32
布尔索引
print(series_4[series_4 > 2])# series_4 > 2 为布尔型Series对象# series_4[series_4 > 2] 获取结果为True的数据#d 3#e 4#dtype: int32
Dataframe对象 (一)增import numpy as npimport pandas as pddf1 = pd.Dataframe(np.arange(12).reshape(3,4),index=[1,2,3],columns=['a','b','c','d'])print(df1) a b c d1 0 1 2 32 4 5 6 73 8 9 10 11
增加列(1) 方式一 : df1[4] = 9print('df1 : ',df1,sep = 'n')# result:df1 : a b c d 41 0 1 2 3 92 4 5 6 7 93 8 9 10 11 9(2) 方式二 : df1[5] = [11,22,33]print('df1 : ',df1,sep = 'n')# result:df1 : a b c d 4 51 0 1 2 3 9 112 4 5 6 7 9 223 8 9 10 11 9 33(3) 方法三 : 使用insert方法df1.insert(0,'e',[9,99,999]) # 在0位置添加 列 e ,其value为 [9,99,999]print('df1 : ',df1,sep = 'n')# result:df1 : e a b c d 4 51 9 0 1 2 3 9 112 99 4 5 6 7 9 223 999 8 9 10 11 9 33
增加行(1) 方法一 : 标签索引loc [works on labels in the index]df1.loc['z'] = [1,1,1,1]df1.loc['y'] = 1print(df1)# result : a b c d1 0 1 2 32 4 5 6 73 8 9 10 11z 1 1 1 1y 1 1 1 1(2) 方法二 : 生成新的Dataframe对象res = df1.append({'a':'a'},ignore_index=True) # 生成新的Dataframe对象print(res,res is df1,sep='n')# result : a b c d0 0 1.0 2.0 3.01 4 5.0 6.0 7.02 8 9.0 10.0 11.03 a NaN NaN NaNFalse
(二)删import numpy as npimport pandas as pddf2 = pd.Dataframe(np.arange(12).reshape(3,4),index=[1,2,3],columns=['a','b','c','d'])print(df2)df2: a b c d1 0 1 2 32 4 5 6 73 8 9 10 11#############################################################################################1.删除列(1)del df2['c']# result(df2) a b d1 0 1 32 4 5 73 8 9 11(2) df2.drop('b',axis=1) # drop默认删除行(即axis=0),生成新对象(3) df2.drop(['b','d'],axis='columns')# axis='columns'与axis=1效果相同2.删除行df2.drop([1,3])
(三) 改df3 = pd.Dataframe(np.arange(12).reshape(3,4),index=['A','B','C'],columns=['a','b','c','d'])print(df3)###########RESULT############## a b c dA 0 1 2 3B 4 5 6 7C 8 9 10 11
1、属性(only column)df3.a = 9###########RESULT############## a b c dA 9 1 2 3B 9 5 6 7C 9 9 10 11df3.a = [1,11,111]###########RESULT############## a b c dA 1 1 2 3B 11 5 6 7C 111 9 10 11
2、标签索引(only column)若中括号内无该索引,便增加新的一列
df3['b'] = 9###########RESULT############## a b c dA 0 9 2 3B 4 9 6 7C 8 9 10 11df3['b'] = [1,11,111]###########RESULT############## a b c dA 0 1 2 3B 4 11 6 7C 8 111 10 11
3、loc1、修改一行df3.loc['A'] = [9,99,999,9999] # df3.loc['A'] = 92、修改具体某一位置df3.loc['B','c'] = 666###########RESULT############## a b c dA 9 99 999 9999B 4 5 666 7C 8 9 10 11
(四) 查df4 = pd.Dataframe(np.arange(12).reshape(3,4),index=['A','B','C'],columns=['a','b','c','d'])###################df4########################### a b c dA 0 1 2 3B 4 5 6 7C 8 9 10 11
1、获取单列(1) print(df4['c'])###########RESULT##############A 2B 6C 10Name: c, dtype: int32(2) print(df4[['c']])###########RESULT############## cA 2B 6C 10
2、获取单个值(1) print(df4['c']['B']) ## 列在前,行在后###########RESULT##############6(2) print(df4.loc['B', 'c'])###########RESULT##############6
3、获取多列print(df4[['b', 'd']])###########RESULT############## b dA 1 3B 5 7C 9 11
4、获取多行(切片)print(df4[:2]) # 获取 0,1 两行###########RESULT############## a b c dA 0 1 2 3B 4 5 6 7
5、获取多行多列df4.loc['A':'B','b':'c']# 获取 A至B行,b至c列df4.iloc[0:2,1:3]# 获取 A至B行,b至c列###########RESULT############## b cA 1 2B 5 6