- 导入pandas库
import numpy as np
import pandas as pd
- 读入文件
df = pd.DataFrame(pd.read_csv('name.csv',header=1))
df = pd.DataFrame(pd.read_excel('name.xlsx'))
- 信息查看
df.shape 维度查看
df.dtypes 每一列数据的格式
df['B'].dtype 某一列格式
df.isnull() 空值
df['B'].unique() 查看某一列的唯一值
df.columns 查看列名称
- 数据清洗
df.fillna(value=0) 用数字0填充空值
df['prince'].fillna(df['prince'].mean()) 使用列prince的均值对NA进行填充
df['city']=df['city'].str.lower() 大小写转换
df.rename(columns={'category': 'category-size'}) 更改列名称
df['city'].drop_duplicates() 删除后出现的重复值
df['city'].drop_duplicates(keep='last') 删除先出现的重复值
df['city'].replace('sh', 'shanghai') 数据替换
- 预处理
df_inner.sort_values(by=['age']) 按照特定列的值排序
df_inner.set_index('id') 设置索引列
按照索引列排序
df_inner['group'] = np.where(df_inner['price'] > 3000,'high','low')
如果prince列的值>3000,group列显示high,否则显示low
- 数据提取
loc函数按标签值进行提取,iloc按位置进行提取,ix可以同时按标签和位置进行提取。
df_inner.loc[3] 按索引提取单行的数值
df_inner.iloc[0:5] 按索引提取区域行数值
df_inner.iloc[:3,:2] 使用iloc按位置区域提取数据
df_inner.iloc[[0,2,5],[4,5]] 适应iloc按位置单独提起数据
df_inner.ix[:'2013-01-03',:4] 使用ix按索引标签和位置混合提取数据
- 数据筛选
df_inner.loc[(df_inner['age'] > 25) & (df_inner['city'] == 'beijing'), ['id','city','age','category','gender']]
使用“与”进行筛选
df_inner.loc[(df_inner['age'] > 25) | (df_inner['city'] == 'beijing'), ['id','city','age','category','gender']].sort(['age'])
使用“或”进行筛选
df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id'])
使用“非”条件进行筛选
df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age','category','gender']].sort(['id']).city.count()
对筛选后的数据按city列进行计数
df_inner.query('city == ["beijing", "shanghai"]')
使用query函数进行筛选
df_inner.query('city == ["beijing", "shanghai"]').price.sum()
对筛选后的结果按prince进行求和
- 数据汇总
df_inner.groupby('city').count() 对所有的列进行计数汇总
df_inner.groupby('city')['id'].count() 按城市对id字段进行计数
- 数据统计
df_inner.sample(n=3) 数据统计
df_inner.sample(n=6, replace=False) 采样后不放回
df_inner.sample(n=6, replace=True) 采样后放回
- 数据输出
df_inner.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc') 写入Excel
df_inner.to_csv('excel_to_python.csv') 写入到CSV