读取写入 csv , excel 文件
df = pd.read_csv('abd.csv')
df.to_csv('abd.csv')
df = pad.read_excel('abc')
df.to_excel('abc')
查看数据基本信息
df.head(5)
df.tail(5)
df.columns
df.shape # (行, 列)
df.index # 获取索引
df.columns # 获取列名
df.info() # 数据框基本信息
df.sum()
df.min() df.max()
df.cumsum()
df.mean()
df.median()
某一列重命名
df2 = df.rename(columns={'old_name': 'new_name'}, inplace=True)
截取数据
df[ df['column1'] >10]
df[ (df['column1'] >10) &df['column2'] == 10]
df[ (df['column1] >10) | df['column2'] ==10]
删除、填充数据
#删除丢失的数据
df.dropna()
#填充丢失的数据
df.fillna(value=5)
mean = df['column2'].mean()
df['column1'].fillna(mean)
df['new_column'] = df['column'] + 10
迭代处理
迭代处理每一个元素
df[ 'column1'] .map(lambda x: x+10)
df[['column1', 'column2']].apply(sum) # 对 col1, col2,求和
func = lambda x: x+2
df.applymap(func)
查看数据,具体信息
df['column'].unique() # 出现的值
df.describe() #count, mean, std, min, first quartile,median, third quartile, max
df['columns'] # 取列
df[ 0 : n]
df.iloc[ [0], [0]] # 按位置
df.loc[ [0], ['columns'] ] # 按标签
df.ix[ :, 'columns' ]
df.ix[1, 'columns']
删除数据
df.drop( ['columns1', 'columns2'] ) # 按索引删除序列
df.drop( 'columns', axis=1) # 按列名删除
排序
df.sort_index() # 索引排序
df.sort_values(by = 'columns') # 某列值排序
# 行转为列
df = pd.pivot_table(df , values = 'Value', index='Date', columns='Type')
选择数据
df.loc [ : , (df>1).any() ] # 任意一值 > 1 的列
df.loc [ : , (df>1).all() ] # 所有 值 > 1 的列
df.loc [ : , df.isnull().any() ] # 含 Nan的所有列
df.filter( items = [ 'a' , 'b'])
df.select ( lambda x: not x%5)
df.where ( df > 0 )
df.reset_index() # 取消索引
df. unique()
df. duplicated('columns') # 查找重复值
df.drop_duplicates('columns', keep = 'last')
聚合
#聚合
df.groupby(by = ['Date' , 'type'] ).mean()
df.groupby(level = 0).sum()
df.groupby(level=0).agg({ 'a': lambda x: sum(x) / len(x) , 'b' : np.sum})
拼接合并
# 合并 merge
pd.merge( data1, data2, how='left' , on= ' columns')
left 以data1[ ' columns' ] 为准
right 以data2[ ' columns' ] 为准
inner 以 data1, data2[ ' columns' ] 共有的值
outer 以data1 , data2 [ ' columns' ] 的所有值
#拼接
纵向
df1 .append(df2)
横向
pd.concat( [ df1, df2] , axis=1, keys=[ 'one' , 'two'])
pd.concat( [df1, df2] , axis=1, join= 'inner')
缺失值填充
# 缺失值
df.dropna() # 去除缺失值 Nan
df.fillna(df.mean()) # 用预设值填充缺失值
df.replace( ' a' , 'b' ) # 一个值替换另一个值
时间数据
df['Date'] = pd.to_datetime(df[ ' Date'] )