1,用for循环展开二维列表(也可以用numpy中的其他方法实现)
list_c=[[1,2],[3,4],[4,5]]
list(j for i in list_c for j in i)
out:[1, 2, 3, 4, 4, 5]
2,apply和map以及applymap的区别
- apply 用在dataframe上,用于对row或者column进行计算
- applymap 用于dataframe上,是元素级别的操作
- map (是python的内置函数)用于series上,是元素级别的操作
"在数据清洗时可用来查找数据中不是数字的行,以此来清理异常值"
df[~df.applymap(np.isreal)]
"以下用for循环实现的代码,第三行代码中的map用apply替换是可以的,但是第二行由于有一个对整列求均值的操作,故只能用apply,而且注意理解df_c[[i]]与第三行df_c[i]的不同"
for i in ['R_label','M_label','F_label']:
df_c[i]=df_c[[i]].apply(lambda s:s-s.mean())
df_c[i]=df_c[i].map(lambda s: '1' if s>=0 else '0')
3,缺失值的处理
# 删除所有有缺失值的行
df.dropna()
# 删除所有有缺失值的列
df.dropna(axis='columns')
df.dropna(axis=1)
# 删除所有值缺失的行
df.dropna(how='all')
# 删除至少有两个非缺失值的行
df.dropna(thresh=2)
# 指定判断缺失值的列范围
df.dropna(subset=['name', 'born'])
# 使删除和的结果生效
df.dropna(inplace=True)
4,describe()函数
DataFrame.describe(percentiles=None, include=None, exclude=None)
describe(percentiles=[.2,.75, .8])#percentiles,这个参数可以设定数值型特征的统计量,默认[.25, .5, .75],返回25%,50%,75%时候的数据,可修改参数
datafile.describe(include='all') #对所有列进行统计,如果不加这个参数,默认只对数值列进行统计
df.describe(include=['O'])#仅显示离散型变量
df.describe(exclude=['O'])#可以指定不选择哪些列