Series的创建可以指定index。
s1 = pd.Series(['banana','apple']a, index=["fruit1", "fruit2"])
arr = np.arange(1, 5)
s2 = pd.Series(arr, index=["a", "b", "c", "d"])
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的创建可以指定index和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])
data=np.random.randn(6,4)
df=pd.DataFrame(data,columns=list('ABCD'),index=[1,2,'a','b','2006-10-1','第六行'])
df.A
df['A']
df[['A',"B"]]
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))]
df.loc['行标签']
df.loc[['行标签']]
df.loc[['行标签1','行标签2','行标签n']]
df.iloc[1]
df.iloc[[1,2]]
df.iloc[1:4]
df.iloc[[1,4,6]+list(range(8,12))]
df['列名']=[数据]
dataAddCol=pd.DataFrame({'e':[11,12,12]})
dataSet=pd.concat([dataSet,dataAddCol],axis=1)
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)#知道行名
name_list = pd.DataFrame(data = {'Occupation':['Teacher','IT Engineer'],'Age':[28,36]},
columns=['Age','Occupation'],
index=['Tom','Bob'])
name_list.set_index('Occupation',drop=False) '''指定一列。
参数drop默认为True,意为将该列设置为索引后从数据中删除
如果设为False,将继续在数据中保留该行。'''
data.set_index(['one','two']) '''指定多列'''
df.index=['a','b','c','d'] '''修改index'''
df.columns=['a','b','c','d'] '''修改columns'''
df.reset_index(drop=True)