#一:索引对象
#Series的索引和DataFrame的行和列索引都是索引对象;
#索引对象不可以进行修改
In [23]:
obj2.index
Out[23]:
Index(['a', 'b', 'c', 'd'], dtype='object')
In [24]:
df.index
Out[24]:
RangeIndex(start=0, stop=4, step=1, name='id')
In [25]:
df.columns
Out[25]:
Index(['name', 'sex', 'year', 'city'], dtype='object', name='std_info')
In [26]:
'sex' in df.columns
Out[26]:
True
In [27]:
'f' in df.columns
Out[27]:Falsef
#二:基本操作为:“增,删,改,查”
#1.增加 append函数传入字典结构数据
new_dara = {'city':'武汉','name':'小李','gex':'male','year':2002 }
df = df.append(new_dara,ignore_index = True)
df
name | sex | year | city | gex | |
---|---|---|---|---|---|
0 | 张三 | female | 2001 | 北京 | NaN |
1 | 李四 | female | 2002 | 上海 | NaN |
2 | 王五 | male | 2003 | 广州 | NaN |
3 | 小明 | male | 2002 | 北京 | NaN |
4 | 小李 | NaN | 2002 | 武汉 |
|
#新建一列用于存放信息; df['class'] = 2018 df#新建一列用于存放信息;
df['class'] = 2018
df
Out[30]:
name | sex | year | city | gex | class | |
---|---|---|---|---|---|---|
0 | 张三 | female | 2001 | 北京 | NaN | 2018 |
1 | 李四 | female | 2002 | 上海 | NaN | 2018 |
2 | 王五 | male | 2003 | 广州 | NaN | 2018 |
3 | 小明 | male | 2002 | 北京 | NaN | 2018 |
4 | 小李 | NaN | 2002 | 武汉 | male | 2018 |
#新增的列中的数值不一样,可以传入列表或数组结构数据进行赋值
df['math']=[92,78,69,82,66]
df
Out[32]:
name | sex | year | city | gex | class | math | |
---|---|---|---|---|---|---|---|
0 | 张三 | female | 2001 | 北京 | NaN | 2018 | 92 |
1 | 李四 | female | 2002 | 上海 | NaN | 2018 | 78 |
2 | 王五 | male | 2003 | 广州 | NaN | 2018 | 69 |
3 | 小明 | male | 2002 | 北京 | NaN | 2018 | 82 |
4 | 小李 | NaN | 2002 | 武汉 | male | 2018 | 66 |
#2.删除
通过drop函数删除指定轴上的信息
new_df = df.drop(2)
new_df
Out[33]:
name | sex | year | city | gex | class | math | |
---|---|---|---|---|---|---|---|
0 | 张三 | female | 2001 | 北京 | NaN | 2018 | 92 |
1 | 李四 | female | 2002 | 上海 | NaN | 2018 | 78 |
3 | 小明 | male | 2002 | 北京 | NaN | 2018 | 82 |
4 | 小李 | NaN | 2002 | 武汉 | male | 2018 | 66 |
In [34]:
new_df = new_df.drop('class',axis=1)#删除列
new_df
Out[34]:
name | sex | year | city | gex | math | |
---|---|---|---|---|---|---|
0 | 张三 | female | 2001 | 北京 | NaN | 92 |
1 | 李四 | female | 2002 | 上海 | NaN | 78 |
3 | 小明 | male | 2002 | 北京 | NaN | 82 |
4 | 小李 | NaN | 2002 | 武汉 | male | 66 |
#3.修改 '改'指的是行和列索引标签的修改,通过rename函数
#inplace可在原数据上修改
new_df.rename(index={3:2,4:3},columns={'math':'Math'},inplace=True)
new_df
name | sex | year | city | gex | Math | |
---|---|---|---|---|---|---|
0 | 张三 | female | 2001 | 北京 | NaN | 92 |
1 | 李四 | female | 2002 | 上海 | NaN | 78 |
2 | 小明 | male | 2002 | 北京 | NaN | 82 |
2 | 小李 | NaN | 2002 | 武汉 | male | 66 |
#三:索引选取
#1.选取列
>>通过中括号[]
#2.选取行(索引位置0到N-1)
方法一:切片方法;eg:df2['李四','王五']
方法二:通过loc和iloc方法实现;
loc:按照行索引标签选取数据;eg:df2.loc[['张三','王五']]
iloc:按照行索引位置选取数据;eg:df2.iloc[[1,3]]
#3.选取行和列
通过ix()方法支持索引标签和索引位置来进行数据的选取;
eg:df2.ix[['张三','王五'],0:2] #获取行
eg:df2.ix[:,['张三','王五']] #获取列
#通过set_index方法和reset_index方法设置行索引;