Pandas数据计算

数据计算

目录

  1. 常用函数

  2. 分组统计函数

  3. 按不同时期统计数据的函数

常用函数

求和函数

1
DataFrame.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

axis: axis=0表示按行对所有列求和,axis=1表示按列对所有行求和;

skipna: 布尔型,表示计算结果是否排除NaN/Null值;

level: 索引层级;

min_count: 表示执行操作所需的数目,整型,默认值为0。

常见形式:

  • df.sum()
  • df.sum(axis=1)

求均值函数

1
DataFrame.mean(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

常见形式:

  • df.mean()
  • df.mean(axis=1)

求最大值函数

1
DataFrame.max(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

常见形式:

  • df.max()
  • df.max(axis=1)

求最小值函数

1
DataFrame.min(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

常见形式:

  • df.min()
  • df.min(axis=1)

求中位数函数

1
DataFrame.median(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

常见形式:

  • df.median()
  • df.median(axis=1)

求众数函数

1
DataFrame.mode(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

常见形式:

  • df.mode()
  • df.mode(axis=1)

求方差函数

1
DataFrame.var(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

常见形式:

  • df.var()
  • df.var(axis=1)

求标准差函数

1
DataFrame.std(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

常见形式:

  • df.std()
  • df.std(axis=1)

求分位数函数

1
DataFrame.quantile(q=0.5, axis=None, numeric_only=None, interpolation='linear')

q:浮点型或数组,分位点,值域[0,1]

interpolation=’linear’: 内插值,不懂,也很难用到。

常见形式:

  • df.quantile(0.35)
  • df.quantitle(axis=1)

分组统计函数

分组统计函数

1
DataFrame.groupby(by='', axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False)

一般只需用到by=’’

  1. 简单应用
1
2
3
4
5
6
7
df1 = df1.groupby(by='column_name').sum()

df1 = df1.groupby('column_name').sum()

df1 = df1.groupby(['column1_name', 'column2_name']).sum()

df1 = df1.groupby('groupby_name')['sum_name'].sum()
  1. 高级应用
1
2
3
4
5
6
7
8
9
10
# 打印各个分组中的所有值
df1 = df1['column1','column2','column3']
for name, group in df1.groupby('column1'):
print(name) # name 为column1中的值
print(group) # group为分组后的数据


for (key1,key2), group in df1.groupby(['column1','column']):
print(key1,key2)
print(group)
1
2
3
4
# 分组聚合函数
df1 = df1.['column1','column2','column3']
group_cal1 = df1.groupby('column1').agg(['mean','sum'])
group_cal2 = df1.groupby('column1').agg({'column2':['mean','sum'],'column3':['sum']})
  1. 与字典结合的分组函数
1
2
3
4
# 将几列数据通过字典合并到一列中,并对列名进行重命名
dic1 = {'column1':'ha', 'column2':'ha', 'column3':'he'}
df1 = df1.groupby(dic1,axis=1).sum()

时期统计函数

按时期统计数据

前提:将日期设置为索引,且日期格式为日期型

  1. 按年统计数据
    df1= df1.resample(‘AS’).sum()

  2. 按季度统计数据
    df1 = df1.resample(‘Q’).sum()

  3. 按月份统计数据
    df1 = df1.resample(‘M’).sum()

  4. 按星期统计函数
    df1 = df1.resample(‘W’).sum()

  5. 按天统计函数
    df1 = df1.resample(‘D’).sum()

按时期统计数据后并将日期转换为相对应的格式

前提:将日期设置为索引,且日期格式为日期型

  1. 按年统计数据
    df1= df1.resample(‘AS’).sum().to_period(‘AS’)

  2. 按季度统计数据
    df1 = df1.resample(‘Q’).sum().to_period(‘Q’)

  3. 按月份统计数据
    df1 = df1.resample(‘M’).sum().to_period(‘M’)

  4. 按星期统计函数
    df1 = df1.resample(‘W’).sum().to_period(‘W’)

  5. 按天统计函数
    df1 = df1.resample(‘D’).sum().to_period(‘D’)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!