分组求和

awk '{s[$1] += $2}END{ for(i in s){ print i, s[i] } }' file1 > file2

1

awk'{s[$1] += $2}END{ for(i in s){  print i, s[i] } }'file1>file2

以第一列 为变量名  第一列为变量,将相同第一列的第二列数据进行累加打印出和.

awk '{s[$1" "$2] += $3}END{ for(i in s){ print i, s[i] } }' file1 > file2

1

awk'{s[$1" "$2] += $3}END{ for(i in s){  print i, s[i] } }'file1>file2

以第一列和第二列为变量名, 将相同第一列、第二列的第三列数据进行累加打印出和

awk '{s[$1] += $2; a[$1] += $3 }END{ for(i in s){  print i,s[i],a[i] } }'  haha.txt

1

awk'{s[$1] += $2; a[$1] += $3 }END{ for(i in s){  print i,s[i],a[i] } }' haha.txt

如果第一列相同,则根据第一列来分组,分别打印第二列和第三列的和

匹配

1、匹配交集项

awk 'NR==FNR{a[$1]=1}NR>FNR&&a[$1]>0{print $0}'  file1(字段:QQ) file2(字段:QQ 点券值 ) > file3

1

awk'NR==FNR{a[$1]=1}NR>FNR&&a[$1]>0{print $0}' file1(字段:QQ) file2(字段:QQ 点券值) >file3

如果file1、file2中,2个文件的第一列值相同,输出第2个文件的所有列

注意:数据量如果达到4Gb以上或者行数达到一亿级别,建议将file2进行split分割,否则就算是32G的内存的机器都会被吃掉;

awk 'NR==FNR{a[$1" "$2]=1}NR>FNR&&a[$1" "$2]>0{print $0}'  file1 file2> file3

1

awk'NR==FNR{a[$1" "$2]=1}NR>FNR&&a[$1" "$2]>0{print $0}' file1file2>file3

如果file1、file2中,2个文件的第一列第二列值相同,输出第2个文件的所有列

2、匹配非交集项

awk 'NR==FNR{a[$1]=1}NR>FNR&&a[$1]<1 {print $0}'  file1 file2 > file3

1

awk'NR==FNR{a[$1]=1}NR>FNR&&a[$1]<1 {print $0}' file1file2>file3

针对2个文件的第一列做比较,输出:在file2中去除file1中第一列出现过的行

第二种方法:

cat file1 file2|sort |uniq -d > jiaoji.txt

cat file2 jiaoji.txt  |sort |uniq -u > file3

1

2

catfile1file2|sort|uniq-d > jiaoji.txt

catfile2jiaoji.txt  |sort|uniq-u>file3

取最大值、最小值

1、针对(2列的文件)

awk '{max[$1]=max[$1]>$2?max[$1]:$2}END{for(i in max)print i,max[i]}'  file

1

awk'{max[$1]=max[$1]>$2?max[$1]:$2}END{for(i in max)print i,max[i]}' file

第一列不变,取第二列分组最大值

awk '{if(!min[$1])min[$1]=20121231235959;min[$1]=min[$1]

1

awk'{if(!min[$1])min[$1]=20121231235959;min[$1]=min[$1]

第一列不变,取第二列分组最小值

2、针对单列的文件

awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}' file2

awk 'BEGIN {min = 1999999} {if ($1

1

2

awk'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'file2

awk'BEGIN {min = 1999999} {if ($1

求和、求平均值、求标准偏差

求和

cat data|awk '{sum+=$1} END {print "Sum = ", sum}'

1

catdata|awk'{sum+=$1} END {print "Sum = ", sum}'

求平均

cat data|awk '{sum+=$1} END {print "Average = ", sum/NR}'

1

catdata|awk'{sum+=$1} END {print "Average = ", sum/NR}'

求标准偏差

cat $FILE | awk -v ave=$ave '{sum+=($1-ave)^2}END{print sqrt(sum/(NR-1))}'

1

cat$FILE|awk-vave=$ave'{sum+=($1-ave)^2}END{print sqrt(sum/(NR-1))}'

整合行和列

1、列换成行

如果第一列相同,将所有的第二列 第三列 都放到一行里面

awk '{qq[$1]=qq[$1](" "$2" "$3)}END{for(i in qq)print i,qq[i]}'

1

awk'{qq[$1]=qq[$1](" "$2" "$3)}END{for(i in qq)print i,qq[i]}'

2、合并文件

2个文件,每个2列,将他们按照第一列相同的数,来合并成一个三列的文件,同时,将每个文件中针对第一列对应第二列中没有的数补0

awk 'FNR==NR{a[$1]=$2}FNR file3

1

awk'FNR==NR{a[$1]=$2}FNRfile3

注意点:文件2 一定要比文件1 的行数小

3、2个文件,每个3列,将他们按照第一列、第二列相同的数,来合并成一个4列的文件,同时,将每个文件中针对第一列、第二列对应第3列中没有的数补0

awk 'FNR==NR{a[$1" "$2]=$3}FNR

1

awk'FNR==NR{a[$1" "$2]=$3}FNR

4、将列换成行,遇到空行,另起下一行

awk 'begin {RS=""} {print $1,$2,$3} file1

1

awk'begin {RS=""} {print$1,$2,$3} file1

5、某列数字范围筛选

cat   canshu |while read a b

do

awk '{ if ($2>'"$a"' && $2<='"$b"' ) print $1}' result.txt  > "$a"_"$b"_result.log

done

1

2

3

4

cat  canshu|whilereadab

do

awk '{ if ($2>'"$a"' && $2<='"$b"' ) print $1}'result.txt >"$a"_"$b"_result.log

done

注意点:awk使用函数时,使用'"$a"'(先单引号,后双引号)

集合类

1、集合交

cat fileA fileB |sort |uniq –d > result.log

1

catfileAfileB|sort|uniq–d>result.log

2、集合差

cat fileA fileB     |sort |uniq -d   > jiaoji.txt

cat fileA jiaoji.txt  |sort |uniq -u   > result.log

1

2

catfileAfileB    |sort|uniq-d  >jiaoji.txt

catfileAjiaoji.txt |sort|uniq-u  >result.log

3、集合全集去重

cat fileA fileB |sort  -u > result.log

1

catfileAfileB|sort -u>result.log

4、集合全集不去重

cat fileA fileB |sort     > result.log

1

catfileAfileB|sort    >result.log

python分组求和法_awk分组求和分组统计次数相关推荐

  1. python对excel某一列求和-如何对某一列自动分组,统计求和

    对 v2 列分组,映射成分组 ID 列,然后做平均值统计便可. 请参考以下代码 ''' 按区间对某列做分组,然后统计各组的另一列的平均值. author: 李毅 ''' import numpy as ...

  2. python使用pandas计算dataframe中每个分组的分位数极差、分组数据的分位数极差(range)、使用groupby函数和agg函数计算分组的两个分位数

    python使用pandas计算dataframe中每个分组的分位数极差.分组数据的分位数极差(range).使用groupby函数和agg函数计算分组的两个分位数 目录

  3. python使用pandas计算dataframe中每个分组的极差、分组数据的极差(range)、使用groupby函数和agg函数计算分组的最大值和最小值

    python使用pandas计算dataframe中每个分组的极差.分组数据的极差(range).使用groupby函数和agg函数计算分组的最大值和最小值 目录

  4. 【Python】GroupBy:数据聚合与分组运算

    [博客地址]:https://blog.csdn.net/sunyaowu315 [博客大纲地址]:https://blog.csdn.net/sunyaowu315/article/details/ ...

  5. 数据分析中的分组分析法(二)

    我们在上面的内容中为大家解释了数据分析中的分组分析方法,我们根据属性指标分组分析法和数量指标分组分析法的定义给大家进行了详细的说明.但是对于数量指标分组分析法没有给大家详细地说明,今天我们给大家好好讲 ...

  6. python数据科学包第三天(索引、分组计算、数据聚合、分组运算和转换、载入数据、日期范围、数据可视化)

    索引 行索引 列索引 索引的分类 重复索引的处理 s = pd.Series(np.random.rand(5), index=list('abcde')) s a 0.566924 b 0.6034 ...

  7. python如何读取文件内容求和_python读文件统计次数和求和怎么写?

    题目: python读文件统计次数和求和怎么写? 有一个文件文件内容如下: A 1 22 A 1 44 A 2 33 B 1 22 B 3 44 B 4 55 C 1 11 C 4 22 . 文件中有 ...

  8. 左手Python 右手R —— 前N阶乘求和、金字塔数求和

    左手Python 右手R -- 前N阶乘求和.金字塔数求和 前言 1.前N阶乘求和 1.1 图解问题 1.2 算法流程 1.3 代码实现 1.3.1 python代码实现 1.3.2 R语言代码实现 ...

  9. [AcWing] 9. 分组背包问题(C++实现)分组背包问题模板题

    [AcWing] 9. 分组背包问题(C++实现)分组背包问题模板题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总结 ...

  10. R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter、分组颜色配置)实战

    R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter.分组颜色配置) ...

最新文章

  1. Android -- 利用Broadcast开启Service
  2. Scala 深入浅出实战经典 第88讲:Scala中使用For表达式实现map、flatMap、filter
  3. 几年前,我撸了一套RabbitMQ的客户端
  4. Debian 9 Samba共享的一个问题总结
  5. 【转】采购订单行项目检查增强
  6. 音频处理九:(参数估计)
  7. oracle数据库扩展目录,Oracle 扩充磁盘空间
  8. Xuggler教程:帧捕获和视频创建
  9. Runtime.getRuntime().exec()调用外部程序
  10. android lru进程队列,Android缓存机制——LruCache
  11. ftp网页服务器不允许匿名登录,我的FTP服务器不让匿名登陆,怎么办?
  12. HttpClient的简单实现
  13. 发动机冒黑烟_发动机冒黑烟的原因和解决方法
  14. node mysql菜鸟教程_Node.js 路由
  15. 【Ubuntu】Ubuntu18.04主题,图标,登陆美化
  16. Java 计算排列_java如何进行排列组合运算
  17. hotmail 获取邮箱授权码
  18. PHP数据结构基本概念
  19. 陀螺财经研究院郭润华:2019年将迎来区块链真正成熟的井喷时代
  20. 使用SaveFileDialog将DataTable文件保存成csv文件

热门文章

  1. 求定积分sinx的c语言编程,sinx定积分计算
  2. 智慧城市大数据运营中心及城市大脑综合运行管理平台建设方案WORD
  3. 等级保护三级信息系统安全设计
  4. 用javascript实现win7系统扫雷游戏
  5. GD32单片机介绍——兆易创新
  6. 用于计算成像的超材料
  7. Windows快速更改IP脚本
  8. Docker搭建Nginx集群
  9. Java基本语法格式
  10. Android文件下载——多文件多线程断点下载