pandas数据处理函数汇总

  1. 获取unique_values:pd.unique(data['col'])
  2. 获取每个unique_values出现的频次,用value_counts,如果获取其shape[0],跟上面的结果一样:data['shopid'].value_counts().shape[0]
  3. 建立透视表格:data.pivot_table(index='date',columns='group_id',values='rate')
  4. 排序:data.sort_values(by = ['date',  'group_id'])
  5. 分组统计:data[['rate', 'group_id', 'date']].groupby(['group_id']).mean()
  6. 观察不同标签的占比:data[['label']].groupby('label').size().values / data.shape[0]
  7. 筛选样本: data[(data['date'] == '2021-01-15') & (data['group_id'] == 1315)]
  8. 获取df的值,生成一个array: data.values
  9. 转置:df.transpose()
  10. 导入数据:df = pd.read_table('path', header=None, encoding='utf-8', sep='\001', na_values = ['\\N']).
  11. 导入excel数据:data = pd.read_excel('name.xlsx', sep = '\\t',  header = 0)
  12. 导出txt数据:demo.iloc[:1000, :].to_csv('predict.txt', sep='\t', index=False, header = True)
  13. 拼接多个df,列名都相同,注意这里index会有重复的,会有多个0、1、2等;其中dfs就是包含多个df的list;data = pd.concat(dfs)
  14. 重新给予index,没有重复的index:data = data.reset_index(drop = True)
  15. 观察df前多少行:data.head(n)
  16. 后多少行:data.tail(n)
  17. 对该列每个值都应用函数,用apply:data['content'].apply(json.loads)
  18. apply的函数,调用lambda时: data['map'].apply(lambda x : list(x['key'].values())[0])
  19. 判断df中每列有多少行的null,判断null的函数是isnull:sum(pd.isnull(data.iloc[:, i]))
  20. 删除df部分列:data.drop(list, axis = 1, inplace = True)
  21. 删除df部分行:index_2_drop = data[data['col'] == 0].index
    data.drop(index_2_drop, inplace = True)
  22. 给列名:data.columns = columns
  23. 数据显示相关设置:pd.set_option('display.float_format', lambda x: '%.4f' % x) # 取消科学计数方法,改为4位
    pd.set_option('display.max_columns', None) #显示所有列
    # pd.set_option('display.max_rows', None) #显示所有行
    # pd.set_option('max_colwidth',100) #设置value的显示长度为100,默认为50
  24. 填充na,用-1:data = data.fillna(-1)
  25. 删除na data = data.dropna()
  26. 替换:data.loc[data['col'] > 5, ['age']] = 5
  27. 取得每个列的描述性统计,连续变量和类型变量不会一起出现,因为对他们的描述性统计的指标不同,优先出现连续变量:data.describe()
  28. 每个列的柱状图:data.hist(figsize=(15,15))
  29. 幂函数,这里求平方:math.pow(to_power,2)
  30. string形式的list变成list,好用的库ast库,把 '[1.2]'换成[1,2]:ast.literal_eval(x)
  31. 变更列数据类型:data['col'].astype(str),要覆盖data['hour'] = data.hour.astype(int)   或者是data['hour'] = data['hour'].astype(int)
  32. 两列的相乘:data['product'] = data['col_1'].mul(data['col_2'])
  33. 获取各列的类型:data.dtypes  
  34. 分组,连续型变量为类型变量:
    data['cont'].hist()
    bin_ranges = [0, 1, 4, 11, 100]
    bin_names = [0, 1, 2, 3]
    data['cat'] = pd.cut(np.array(data['cont']), bins = bin_ranges, labels = bin_names, right = False, retbins = False, include_lowest = True)
    data['cat'].hist()
  35. 数据的行数和列数;通过[0]或[1]的index,可以分别得到行数和列数。data.shape() 

  36.  

你可能感兴趣的:(python学习,pandas,python,python,pandas,数据分析)