gpt4 book ai didi

java - 将 CSV 文件列中的相似项目分组为主键

转载 作者:行者123 更新时间:2023-12-01 22:45:59 26 4
gpt4 key购买 nike

我有一个大型 CSV 文件,其中包含与此类似的数据

User ID       Group
ABC Group1
DEF Group2
ABC Group3
GHI Group4
XYZ Group2
UVW Group5
XYZ Group1
ABC Group1
DEF Group2

我需要以这样的方式对这些项目进行分组:组属性在用户 ID 中重复的次数,并获取一个值,使得

ABC   Group1 ->2
ABC Group3 ->1
DEF Group2 ->2
GHI Group4 ->1
UVW Group5 ->1
XYZ Group2 ->1
XYZ Group1 ->1

是否有任何聚类算法可以做到这一点。

最佳答案

就您而言,如果您不想将所有数据存储在内存中,我会这样做:

public class Tester {
public static Multiset<String> getMultisetFromCSV(String csvFileName, String lineDelimiter) throws IOException {
Multiset<String> mapper = TreeMultiset.create();


BufferedReader reader = null;

try {
reader = new BufferedReader(new FileReader(csvFileName));

String[] currLineSplitted;

while(reader.ready()) {
currLineSplitted = reader.readLine().split(lineDelimiter);
mapper.add(currLineSplitted[0] + "-" + currLineSplitted[1]);
}

return mapper;
} finally {
if(reader != null)
reader.close();
}

}

public static void main(String[] args) throws IOException {
Multiset<String> set = getMultisetFromCSV("csv", ",");

for(String key : set.elementSet()) {
System.out.println(key + " : " + set.count(key));
}


}

}

通过这种方式,您可以非常轻松地构建 map 。之后,对于每个键,您可以使用 count method 计算与其关联的项目数。 .

关于java - 将 CSV 文件列中的相似项目分组为主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25362982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com