pandas 索引切片

2021-09-25 19:23:14 字數 4036 閱讀 5120

ser1=pd.series(range(10,15),index=list('abcde'))

print(ser1)

普通索引

print(ser1['a'])

print(ser1[0])

print('#############')

注意通過自定義索引的左閉右閉的,用預設索引(下標)是左閉右開的

print(ser1['a':'c'])

print(ser1[0:2])

print()

print('################')

不連續索引

print(ser1[['a','c','e']])

print(ser1[[0,2,3]])

print('###############')

條件索引

print(ser1[(ser1>12) & (ser1<15)])

print()

print(ser1[(ser1<12) | (ser1>15)])

print()

print(ser1[ser1!=13])

print()

print(ser1[~(ser1==13)])

print()

print('###############')

print()

ser2=pd.series(range(10,15),index=range(1,6))

print(ser2)

print('###############')

這樣定義索引無法取到下標0

注意:預設不能直接和之前一樣取連續多列,要使用高階索引實現

df1=pd.dataframe(np.random.randint(10,50,(3,4)),index=list('abc'),columns=list('abcd'))

普通索引

print(df1)

print()

這裡取到的是乙個series物件

print(df1['a'])

print(df1['a'].values)

print()

用行列索引取元素

print(df1['a']['b'])

print(df1['a'][1])

print()

取不連續多列

print(df1[['a','c']])

print()

取單行,注意這個方法取出的是乙個dataframe物件

print(df1['a':'a'])

print()

取連續多行

print(df1['a':'c'])

print('############')

print()

高階索引,這裡是series的例子

ser1=pd.series(range(10,15),index=list('abcde'))

print(ser1.loc['b':'d'])

print(ser1.loc[['b','d']])

print('#############')

print()

dataframe index引數高階索引

print(df1['a':'a'])

print(df1.loc['a'])

print()

取一列資料

print(df1['a'])

print(df1.loc[:,'a'])

print('#############')

print()

取連續多行

print(df1['a':'c'])

print(df1.loc['a':'c'])

print()

取連續多列

print(df1.loc[:,'a':'c'])

print()

取指定連續行列

print(df1.loc['b':'c','c':'d'])

print()

取不連續多行

print(df1.loc[['a','c']])

print()

取不連續多列

print(df1.loc[:,['a','c','d']])

print()

取指定行列(可指定順序)

print(df1.loc[['a','c'],['a','d','c']])

print('#################')

print()

下標高階索引

print(df1.iloc[0,0])

print(df1.iloc[0:2])

print()

print(df1.iloc[:,0:3])

print(df1.iloc[[0,2],[0,3]])

print('##############')

print()

df1=pd.dataframe(np.random.randint(10,20,(3,4)),index=list('abc'),columns=list('abcd'))

print(df1)

print()

新增列df1['e']=df1['d']*10

print(df1)

print()

新增行df1.loc['d']=[1,2,3,4,5]

print(df1)

print()

新增列df1['f']=df1['a']+df1['b']+df1['c']+df1['d']+df1['e']

print(df1)

print()

print('################')

print(df1)

print()

# 刪除指定列

df2=df1.drop(['c','d'],axis=1)

print(df1)

print(df2)

print()

刪除指定列

del df1['d']

print(df1)

#不能刪除指定行

學習筆記 Pandas索引 切片

dataframe物件操作 上回說到series可以看做是帶索引的一維陣列,也可以看做是字典,下面來分別說不同看法下的series物件可以有哪些操作。建立乙個series物件 data pd.series np.linspace 0.25,1 4 index a b c d print data p...

pandas切片學習

1 建立dataframe df pd.dataframe 2 列印dataframe一些屬性 df.dtypes age int64 grade float64 object dtype object df.value array型 10 100.0 female 20 90.0 male 30 ...

pandas索引物件

python for data analysis index物件是不可修改的 immutable 這樣才能使index物件在多個資料結構之間安全共享。in 1 import pandas as pd in 2 from pandas import series,dataframe in 3 impo...