1 设置索引:
df.set_index('xxx')
2 重置索引(行号):
df.reset_index(drop = True, inplace = True) # drop = True:原有索引就不会成为新的列
3 更改列名:
#方法一:直接法
df.columns = ['col1', 'col2', 'col3']
#方法二:(使用rename()函数:修改指定修改某列或某几列名字)
df.rename(columns={'0':'col1', '1':'col2', '2':'col3'}, inplace=True)
4 更改列序:
(1)将三列倒序:
#方法一:
df.iloc[:, ::-1]
#方法二
df.iloc[:, [-1,-2,-3]]
(2)交换两列位置:
#方法一
temp = df['popularity']
df.drop(labels=['popularity'], axis=1, inplace=True)
df.insert(0, 'popularity', temp)
df
#方法二:直接法,更改取列顺序
cols = df.columns[[1,0]]
df = df[cols]
df
(3)更改全部列排序:
order = ['xxx3', 'xxx1', 'xxx2']
df = df[order]
5 删除行列:
(1)DataFrame.drop用法:
'''
DataFrame.drop(axis=0, how='any', thresh=None, subset=None, inplace=True)
axis=0 行;axis=1 列;
how:{'any', 'all'} -- 'any':存在NA值就删除该行/列;'all':所有值为NA才删除;
thresh:int保留含有int个非空值的行;
subset:对特定的列进行缺失值删除处理;
inplace:False-返回新的数据集(默认),True-在原数据集上操作
'''
(2)删除最后一列:
#方法一:
del df['categories']
#方法二:
df.drop('categories',axis=1, inplace=True) #columns=['xxx']
#方法三:
df.drop([df.columns[df.shape[1]-1]], axis=1,inplace=True)
(3)删除某列所有为非数字的行:
# 先定义一个数组,存储非数字的索引,然后再drop()
k = []
for i in range(len(data)):
if type(data['换手率(%)'][i]) != float: #data['换手率(%)'][i]或写成data.iloc[i, 13]
k.append(i)
data.drop(labels=k, inplace=True)
data
6 两列合并成新的一列:(直接相加减)
df['test'] = df['education'] + df['createTime'] # 两列均为字符串类型
df['test1'] = df['salary'].map(str) + df['education'] # salary为int类型,需转换为字符串类型;
7 反转数据框的行:
df.iloc[::-1, :]
# [::-1]表示步长为-1, 从后往前倒序输出