Python Pandas Dataframe 的基本操作

  1. 数据洞察
df.shape  #查看数据维度 
df.info()  #查看数据信息
df.dtypes  df['B'].dtype  df.B.dtype  #查看列的数据类型
df.isnull()    df['B'].isnull()  df.B.isnull()  #空值检查
df['B'].unique()  #查看列中的唯一值
df.values  #查看数据值
df.columns  #查看各列的名称
df.head()    df.head(10)  #查看前N行数据
df.tail()  df.tail(10)  #查看后N行数据
  1. 数据清洗
df.dropna(how = 'any')  #删除含有空值的行
df.fillna(value = 0)  #用0来填充空值
df['B'].fillna(df['B'].mean())  #使用列均值来填充
df['B']=df['B'].map(str.strip)  #删除前后空格
df['B']=df['B'].str.lower()  df['B']=df['B'].str.upper()  #大小写转化
df['B'].astype('int')  #数据类型转换
df.rename(columns={'B': 'B1'})  #列的重命名
df['B'].drop_duplicates()  df['B'].drop_duplicates(keep='last')  #去除重复项
df['B'].replace('value1', 'value2')  #数据值的替换
  1. 数据预处理
df = pd.merge(df1,df2,how='inner')  #类似excel中的vlookup,SQL中的join how(inner,left,right,outer)
df.set_index('id')  #设置索引列
df.sort_index()  #按索引列排序
df.sort_values(by=['B'])  #按特定的列的值排序
df['G'] = np.where(df['B'] > 10,'type_a','type_b')  #计算列,如果B列的值>10,G列显示type_a,否则显示type_b
df.loc[(df['B'] == 'xxx') & (df['C'] >= 10), 'flag']='tag'  #计算列,多条件判断派生新列
df1=pd.DataFrame((x.split('-') for x in df['B']),index=df.index,columns=['B1','B2'])
df=pd.merge(df,df1,right_index=True, left_index=True)  #按特定字符对列数据进行分割,分割后与原数据合并
  1. 数据获取
#loc 按标签值获取
#iloc 按位置获取
#ix 可同时按标签值和位置进行获取
df.loc[2]  df.loc[0:5]
df.iloc[1:2,3:4]  df.iloc[:3,:2]
df.iloc[[1,3,5],[2,4,6]]
df.loc[df['B'].isin(['x','xx'])]  #按条件获取数据
  1. 数据筛选
df.loc[(df['B'] > 10) & (df['C'] == 'xx'), ['A','B','C','D','E']]
df.loc[(df['B'] > 10) | (df['C'] == 'xx'), ['A','B','C','D','E']]
df.loc[(df['B'] > 10) & (df['C'] == 'xx'), ['A','B','C','D','E']].sort(['A','E'])
df.loc[(df['B'] > 10) & (df['C'] == 'xx'), ['A','B','C','D','E']].D.sum()
df.query('B== ["xx", "xxx"]')
df.query('B== ["xx", "xxx"]').D.sum()

6.数据汇总

df.groupby('B').count()
df.groupby('B')['C'].count()
df.groupby(['B','E'])['C'].count()
df.groupby(['B','E'])['C'].agg([np.sum,np.mean,len])
pd.pivot_table(df,index=['A'],values=['B'],columns=['C'],aggfunc=[len,np.sum],fill_value=0,margins=True)
  1. 数据输出
df.to_excel('filename.xlsx', sheet_name='sheet1')
df.to_csv('filename.csv')

你可能感兴趣的:(Python Pandas Dataframe 的基本操作)