Kur*_*eno 6 csv microsoft-excel
我有多个文本文件 (CSV),其结构类似于:
funkiana,23.55,-99.866
funkiana,24.634,-98.701
funkiana,24.717,-98.901
geminiflora,22.25,-104.6166667
geminiflora,21.21666667,-104.65
horrida,19.633,-97.367
horrida,23.61666667,-102.575
horrida,22.158,-100.979
horrida,19.506,-97.433
horrida,17,-97.56667
horrida,19.485,-97.263
horrida,19.017,-99.133
horrida,19.017,-99.15
horrida,18.91,-99.23
horrida,17.82167,-100.26333
horrida,19.507,-97.438
inaequidens,19.399,-99.314
inaequidens,23.58333,-105.8833
inaequidens,19.767,-103.7
inaequidens,20.787,-103.848
Run Code Online (Sandbox Code Playgroud)
如您所见,共有三个字段(物种、纬度和经度)。现在,我想将每个 CSV 文件拆分为不同的 CSV 文件,仅包含每个物种的数据。换句话说,我想要一个文件用于所有出现的funkiana
(经纬度),另一个文件geminiflora
(经纬度)等等。
关于如何做到这一点的任何想法?也许使用脚本或 Excel 宏?
$fullpath = "D:\myFolder\input.csv"
$path = Split-Path $fullpath -parent
$data = Import-CSV -Delimiter "," -Path $fullpath -Header species,latitude,longitude
foreach ($group in $data | Group species){
$data | Where-Object {$_.species -eq $group.name} |
ConvertTo-Csv -NoTypeInformation |
foreach {$_.Replace('"','')} |
Out-File "$path\$($group.name).csv"
}
Run Code Online (Sandbox Code Playgroud)
MySplitMacro.ps1
$fullpath
为所需的 CSV 路径.ps1
文件,然后单击使用 PowerShell 运行以您的初始示例作为输入,脚本将在与输入文件相同的位置创建 4 个新的 CSV 文件。当按第一列过滤时,每个 CSV 将包含一组条目。
$data | Group species
的列设置为过滤器-Delimiter ","
输入文件是否具有不同的分隔符,如制表符“`t”或分号“;”-Header species,latitude,longitude
为您的列名称。正确订购$path\$($group.name).csv
如果需要不同的输出路径,请更改-eq $group.name
筛选结果,你也可以使用-like *$group.name*
通配符比较或-match '[A-Z]$group.name'
对正则表达式比较 归档时间: |
|
查看次数: |
8122 次 |
最近记录: |