3-5-对象操作

 

对象的增删改查

In [1]:
import pandas as pd 
 

series结构的增删改查

In [2]:
data =[10,11,12]
index=['a','b','c']
s=pd.Series(data=data,index=index)
s
Out[2]:
a    10
b    11
c    12
dtype: int64
 
  • 查操作
In [3]:
s[0]
Out[3]:
10
In [4]:
s[0:2]
Out[4]:
a    10
b    11
dtype: int64
In [5]:
mask=[True,False,True]
s[mask]
Out[5]:
a    10
c    12
dtype: int64
In [6]:
s.loc['b']
Out[6]:
11
In [7]:
s.iloc[1]
Out[7]:
11
 
  • 改操作
In [8]:
s1=s.copy()
s1['a']=100
s1
Out[8]:
a    100
b     11
c     12
dtype: int64
In [9]:
s1.replace(to_replace=100,value=101,inplace=True)#inplace=True时s1原来的值会变,反之为False则不会变
In [10]:
s1
Out[10]:
a    101
b     11
c     12
dtype: int64
In [11]:
s1.index
Out[11]:
Index(['a', 'b', 'c'], dtype='object')
In [12]:
s1.index=['a','b','d']#修改index的值
s1
Out[12]:
a    101
b     11
d     12
dtype: int64
In [13]:
s1.rename(index={'a':'A'},inplace=True)#inplace=True可以改变原来s1的index值 
s1
Out[13]:
A    101
b     11
d     12
dtype: int64
 
  • 增操作
In [14]:
data=[11,110]
index=['h','k']
s2=pd.Series(data=data,index=index)
s2
Out[14]:
h     11
k    110
dtype: int64
In [16]:
s3=s1.append(s2)#增加一整个Series
In [17]:
s3['j']=500#单独增加一个
s3
Out[17]:
A    101
b     11
d     12
h     11
k    110
j    500
dtype: int64
In [18]:
s1.append(s2,ignore_index=False)#ignore_index=False:不对序列进行重新排序,保留原来的排序
Out[18]:
A    101
b     11
d     12
h     11
k    110
dtype: int64
In [19]:
s1.append(s2,ignore_index=True)#ignore_index=True:对原来的序列进行重新排序
Out[19]:
0    101
1     11
2     12
3     11
4    110
dtype: int64
 
  • 删操作
In [25]:
s3
Out[25]:
A    101
b     11
d     12
h     11
k    110
j    500
dtype: int64
In [26]:
del s3['A']#指定删除1行
s3
Out[26]:
b     11
d     12
h     11
k    110
j    500
dtype: int64
In [27]:
s3.drop(['b','d'],inplace=True)#多行删除
s3
Out[27]:
h     11
k    110
j    500
dtype: int64
 

DataFrame结构的增删改查

In [28]:
data=[[1,2,3],[4,5,6]]
index=['a','b']
columns=['A','B','C']

df=pd.DataFrame(data=data,index=index,columns=columns)
df
Out[28]:
 
 ABC
a 1 2 3
b 4 5 6
 
  • 查操作
In [29]:
df['A']
Out[29]:
a    1
b    4
Name: A, dtype: int64
In [30]:
df.loc['a']
Out[30]:
A    1
B    2
C    3
Name: a, dtype: int64
In [31]:
df.iloc[1]
Out[31]:
A    4
B    5
C    6
Name: b, dtype: int64
 
  • 改操作
In [32]:
df.loc['a']['A']
Out[32]:
1
In [33]:
df.loc['a']['A']=150#直接在原数据上修改值
df
Out[33]:
 
 ABC
a 150 2 3
b 4 5 6
In [34]:
df.index=['f','g']#改索引
df
Out[34]:
 
 ABC
f 150 2 3
g 4 5 6
In [35]:
df.rename(index={'f':'F'},inplace=True)#改索引
df
Out[35]:
 
 ABC
F 150 2 3
g 4 5 6
 
  • 增操作
In [37]:
df.loc['c']=[1,2,3]#增加1行
df
Out[37]:
 
 ABC
F 150 2 3
g 4 5 6
c 1 2 3
In [42]:
data=[[1,2,3],[4,5,6]]
index=['j','k']
columns=['A','B','C']

df2=pd.DataFrame(data=data,index=index,columns=columns)
df2
Out[42]:
 
 ABC
j 1 2 3
k 4 5 6
In [47]:
df3=pd.concat([df,df2],axis=0)#把两个DataFrame连接
df3
Out[47]:
 
 ABC
F 150 2 3
g 4 5 6
c 1 2 3
j 1 2 3
k 4 5 6
In [48]:
df2['Tang']=[10,11]#增加一列
df2
Out[48]:
 
 ABCTang
j 1 2 3 10
k 4 5 6 11
In [50]:
df4=pd.DataFrame([[10,11],[12,13]],index=['j','k'],columns=['D','E'])
df4
Out[50]:
 
 DE
j 10 11
k 12 13
In [54]:
df5=pd.concat([df2,df4],axis=1)
df5
Out[54]:
 
 ABCTangDE
j 1 2 3 10 10 11
k 4 5 6 11 12 13
 
  • 删操作
In [56]:
df5.drop(['j'],axis=0,inplace=True)
df5
Out[56]:
 
 ABCTangDE
k 4 5 6 11 12 13
In [60]:
del df5['Tang']#删1列
df5
Out[60]:
 
 ABCDE
k 4 5 6 12 13
In [63]:
df5.drop(['A','B','C'],axis=1,inplace=True)
df5
Out[63]:
 
 DE
k 12 13
原文地址:https://www.cnblogs.com/AI-robort/p/11636759.html