木子卜—木子卜资源网

python数据分析第三天——数据基本操作

替换

df['年龄'].replace(180,18)  //.replace(被替换的值,新值)

df.fillna(18)  // 对表中所有的空值 替换成18

df.replace([np.NaN,180],18)  //对表中的NaN和180两个值 替换成18

df.replace({np.NaN:20,180:18})  //将NaN替换成20,180替换成18

排序

df.sort_values(by = ['年龄'],ascending=False,na_position='first')

//(by = 需要排序的列,ascending=升序或降序,na_position= 空值放在哪里)

df.sort_values(by = ['年龄','班级'],ascending=[True,False])

排名

df['年龄'].rank(method = 'average')

df['年龄'].rank(method = 'first')

df['年龄'].rank(method = 'min')

df['年龄'].rank(method = 'max')

删除

# 删除列

df.drop(['年龄','学号'],axis=1)

df.drop(df.columns[[2,3]],axis=1)

df.drop(columns = ['年龄','学号'])

# 删除行

df.drop([1,2],axis=0)

df.drop(df.index[[0,1]],axis=0)

df.drop(index = [1,2])

计数

df['报到时间'].value_counts()

df['报到时间'].value_counts(normalize = True,sorts= True)

// (normalize= Ture 显示每个数值的占比,sorts=Ture 表示对结果排序)

获取唯一值
df['报到时间'].unique()

查找

df['年龄'].isin([18,22]) //在某列中查找,列中的数值是否在后面的列表中(既在18或22中)



df['报到时间'] = pd.to_datetime(df['报到时间']) //日期需要转换格式后使用

df['报到时间'].isin(['2020-09-01'])



df.isin([18]) //对全表查找,是否存在18

标记数据区间

# cut() 需要数值唯一不重复

pd.cut(df['宿舍号'],2,[0,3]) 

//(需要划分的列,分成几个区间,区间的取值)【0,3】的意思是,0-3为一个区间,3-最大值为一个区间,一共分成了2个区间

插入列

df.insert(1,'班号',[1,'A1','研1',2,'研2'])  

//(插入位置的索引,列名,对应的数值)数值长度要和原表中的行数相等

df['宿舍管理员'] = ['小小' for i in range(len(df['宿舍号']))] //用列表推到式快速插入一列相同的值

转置

df.T

df.T.T

层次化显示

df.stack()

df.stack().unstack()

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »