最简单的根据列值拆分CSV文件的方法

我有一个世界上每个城市的大名单,我试图按国家分解。 做到这一点手动是非常乏味的,导致相信有一个更好的方法来实现这一点。 这给我带来了下面的问题。

根据一列中的相似值将CSV文件分成更小的CSV文件最简单/最好的方法是什么?

我已经看到这个问题回答了几种不同的方式,假设这个人有C ++的经验,我不这样做。 我有一个非常基本的Java知识,有一点Linux的经验,甚至更多的Windows和Microsoft Office。

任何推动正确的方向是有帮助的。

感谢您花时间阅读这个。 任何和所有的帮助表示赞赏。

显然有很多不同的方法可以实现这一点 – 如果你在Windows上, 这个片段为PowerShell提供了一个很好的单行命令来根据列中的值拆分一个csv文件:

Import-Csv file.csv | Group-Object -Property "department" | Foreach-Object {$path=$_.name+".csv" ; $_.group | Export-Csv -Path $path -NoTypeInformation} 

file.csvreplace为您的csv文件,将"department"replace为要打开文件的列标题。 它将根据所选列中的每个唯一值写入新的csv。

如果你从来没有使用Powershell, 这是一个体面的介绍。

正如你手动做的那样,我假设你不一定需要一个代码来实现这一点。 我对Powershell不熟悉,所以不能评论chrisb的答案。 如果你能得到它的工作,看起来它会比我的解决scheme更简单,但如果你不能,那么你可以尝试以下方法:

  • 在Excel中打开你的csv文件
  • 如果尚未存在,则在首行中插入标题行
  • 在菜单中去数据,然后点击filter。 您将在所有标题中看到漏斗图标。
  • 在国家/地区标题中,select要获取logging的国家/地区。 你会看到只有选定国家的城市被过滤。
  • 复制另一个Excel工作表中的过滤列并保存为一个CSV文件。
  • 重复所有国家的过程。

如果你想进一步自动化,那么你可能需要进行一些编码。