Python 数据清洗与处理
Pandas是基于Numpy构建的库,在数据处理方面可以把它理解为numpy加强版,同时Pandas也是一项开源项目 。
不同于Numpy的是,Pandas拥有种数据结构:Series 一维数据、DataFrame 二维数据(表格)
head() #默认前10行数据
tail() #默认后10 行数据
一、清除数据
1、用数字0填充空值:
df.fillna(value=0)
2、使用列prince的均值对NA进行填充:
df[‘prince’].fillna(df[‘prince’].mean())
3、清楚city字段的字符空格:
df[‘city’]=df[‘city’].map(str.strip)
4、大小写转换:
df[‘city’]=df[‘city’].str.lower()
5、更改数据格式:
df[‘price’].astype(‘int’)
6、更改列名称:
df.rename(columns={‘category’: ‘category-size’})
7、删除后出现的重复值:
df[‘city’].drop_duplicates()
8 、删除先出现的重复值:
df[‘city’].drop_duplicates(keep=‘last’)
9、数据替换:
df[‘city’].replace(‘sh’, ‘shanghai’)
二、数据提取
主要用到的三个函数:loc,iloc和ix,loc函数按标签值进行提取,iloc按位置进行提取,ix可以同时按标签和位置进行提取。
1、按索引提取单行的数值
df_inner.loc[3]
2、按索引提取区域行数值
df_inner.iloc[0:5]
3、重设索引
df_inner.reset_index()
4、设置日期为索引
df_inner=df_inner.set_index(‘date’)
5、提取4日之前的所有数据
df_inner[:‘2013-01-04’]
6、使用iloc按位置区域提取数据
df_inner.iloc[:3,:2] #冒号前后的数字不再是索引的标签名称,而是数据所在的位置,从0开始,前三行,前两列。
7、适应iloc按位置单独提起数据
df_inner.iloc[[0,2,5],[4,5]] #提取第0、2、5行,4、5列
8、使用ix按索引标签和位置混合提取数据
df_inner.ix[:‘2013-01-03’,:4] #2013-01-03号之前,前四列数据
9、判断city列的值是否为北京
df_inner[‘city’].isin([‘beijing’])
10、判断city列里是否包含beijing和shanghai,然后将符合条件的数据提取出来
df_inner.loc[df_inner[‘city’].isin([‘beijing’,‘shanghai’])]
11、提取前三个字符,并生成数据表
pd.DataFrame(category.str[:3])
merge、append、join、concat 数据合并
set_index(‘id’) 设置索引
sort_values(by=[‘age’]) 按照特定列的值排序
sort_index() 按照索引列排序
*[‘group’] = np.where(df_inner[‘price’] > 3000,‘high’,‘low’) 如果prince列的值>3000,group列显示high,否则显示low