在 csv 文件中添加具有相同关键特征的列

Posted

技术标签:

【中文标题】在 csv 文件中添加具有相同关键特征的列【英文标题】:Add up a column with the same key feature in csv file 【发布时间】:2013-07-24 06:41:57 【问题描述】:

包含两个关键特征的列,一列要总结,以及其他一些(例如,1)不重要的列。

key1, key 2, pr, trivial    
abc, 43, 23, haha    
abc, 43, 456, hok    
bcd, 23, 89,kol

我想用相同的 key1 和 key2 添加 sum 列,并输出一个 3 列的 csv 文件。

key1, key2, sumvalueofpr

在上述情况下,它是

key1, key2, sumvalueofpr
abc , 43, 479
bdc, 23, 89

(注:479=23+456

使用 Perl 或 Shell 命令都可以。

【问题讨论】:

to do with either perl or shell command is ok, as long as it works! 你没有用 perl 而是用 python 标记它? @andi 编辑时,请尝试修复帖子中的所有内容,不要只是添加或删除标签。 【参考方案1】:

是否只有 key1/key2 对的特定值,或者您是否要检查任何可能的匹配项?

您可以使用性能较低(但易于编码)的方法,您可以尝试以下方法:

for i in range(0,number_of_rows):
   for j in range(i+1, number_of_rows):
        if (key1_from_row_i == key1_from_row_j) and (if (key1_from_row_i == key1_from_row_j)):
             increment your sum of key1_sum key2_sum

【讨论】:

【参考方案2】:

如果 awk 被您接受,这个单行代码会为您提供预期的输出:

awk -F, -v OFS=", " 'NR==1print "key1","key2","sum";nexta[$1", "$2]+=$3ENDfor(x in a)print x,a[x]' file

【讨论】:

以上是关于在 csv 文件中添加具有相同关键特征的列的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何比较导入的 csv 文件的列以确保它们相同?

读取excel文件并输出具有完全相同的列数据类型的excel文件

在循环文件时添加列名

批处理文件复制 CSV 文件中的列

Python:将系列添加到数据框架中,并没有将数据放在正确的列中。

在 Hadoop 中合并 CSV 文件 [关闭]