pandas行和列的操作

文章目录

  • Series
    • 创建
    • 增、改
  • DataFrame
    • 创建
  • columns & index的指定

在Pandas中,Series是一维容器,DataFrame表示一个数据表。DataFrame中的任一行、任一列都是Series。

Series

创建

Series的创建可以指定index。

  1. 使用列表创建
s1 = pd.Series(['banana','apple']a, index=["fruit1", "fruit2"])
  1. 使用数组创建
arr = np.arange(1, 5)
s2 = pd.Series(arr, index=["a", "b", "c", "d"])
  1. 使用字典创建
dic = {"name": "丁少侠", "age": 20, "grade": [100, 99, 88]}
s3 = pd.Series(dic)

两种方法效果一样:

s1.fruit1
s1["fruit1"]

还可以使用loc和iloc的方法:

s1.iloc[0]
s1.loc["fruit1"]

增、改

增、改语法相同。

s2["a"]=2 '''修改'''
s2["e"]=5 '''增加'''

del方法

del s2["b"] 

drop方法

x1 = s2.drop("a") '''s2不会发生改变,但去掉"a"的series会付给x1'''
s2.drop("a",inplace=True) '''当指定了inplace=True后,s2才会发生改变'''
s2.drop(["a","c"],inplace=True) '''删除多个index'''

DataFrame

创建

dataFrame的创建可以指定index和columns

  1. 使用字典创建
    字典的keys将作为dataFrame中的columns
data={"one":np.random.randn(4),"two":np.linspace(1,4,4),"three":['zhangsan','李四',999,0.1]}
df=pd.DataFrame(data,index=[1,2,3,4])
  1. 使用数组创建
data=np.random.randn(6,4)
df=pd.DataFrame(data,columns=list('ABCD'),index=[1,2,'a','b','2006-10-1','第六行'])

  1. 按列读取
  • 单列
df.A
df['A']
  • 多列
df[['A',"B"]]
  • iloc
df.iloc[:1]    #读取第一列
df.iloc[:,1:3] #读取第1列到第3列
df.iloc[:,2:]  #读取第2列之后的数据
df.iloc[:,:3]  #读取前3列数据
  • 部分连续的取法
df.iloc[:,[1,4,6]+list(range(8,12))]
  1. 按行读取
  • 单行
df.loc['行标签']
df.loc[['行标签']]
  • 多行
df.loc[['行标签1','行标签2','行标签n']]
  • iloc
df.iloc[1]
df.iloc[[1,2]]
df.iloc[1:4]
  • 部分连续的取法
df.iloc[[1,4,6]+list(range(8,12))]

  • 直接增:
df['列名']=[数据]
  • 用concat增加:
dataAddCol=pd.DataFrame({'e':[11,12,12]})
dataSet=pd.concat([dataSet,dataAddCol],axis=1)
  • 用concat增加:
dataAddRow=pd.DataFrame([[5,6,7,8]],columns=['a','b','c','d'])
dataSet=pd.concat([dataSet,dataAddRow])

axis默认为0,也就是默认按行删除

dataSet.drop([dataSet.columns[0]],inplace=True,axis=1)#仅知道列号
dataSet.drop(['b'],inplace=True,axis=1)#知道列名
dataSet.drop(dataSet.index[6],inplace=True)#仅知道行号
dataSet.drop([6],inplace=True)#知道行名

columns & index的指定

  1. 创建DataFrame的时候可以使用colums参数指定列的顺序,也可以使用index来指定行索引
name_list = pd.DataFrame(data = {'Occupation':['Teacher','IT Engineer'],'Age':[28,36]},
						 columns=['Age','Occupation'], 
						 index=['Tom','Bob'])
  1. set_index用于将某一列指定为index
name_list.set_index('Occupation',drop=False) '''指定一列。
							     参数drop默认为True,意为将该列设置为索引后从数据中删除
								 如果设为False,将继续在数据中保留该行。'''
data.set_index(['one','two']) '''指定多列'''
  1. 如果要设置的index不在数据中,可以通过.index进行指定。columns可通过.columns修改
df.index=['a','b','c','d'] '''修改index'''
df.columns=['a','b','c','d'] '''修改columns''' 
  1. 重置index,参数drop默认值为False,意为将原来的索引做为数据列保留,如果设为True,原来的索引会直接删除。
df.reset_index(drop=True)

你可能感兴趣的:(python学习,pandas,python,数据分析)