Processing中如何获取CSV文件指定列的RowCount?
获取CSV指定列的有效行数(Processing实现)
首先明确:Processing的Table.getRowCount()方法只能返回整个表格的总行数,无法直接按列统计。如果要统计指定列中有有效数据的行数,需要手动遍历行并检查列值:
实现步骤
- 先通过列名获取目标列的索引,避免列名拼写错误导致异常
- 遍历表格所有行,逐一检查该行的目标列是否有非空值,符合条件则计数
修改后的代码示例
Table table; float temperature = 15; void setup() { size(displayWidth, 800); table = loadTable("data/wetterAppSentences.csv", "header"); // 指定目标列名,替换成你实际的列头 String targetColumn = "你的列名"; int columnIndex = table.getColumnIndex(targetColumn); // 检查列是否存在 if (columnIndex == -1) { println("目标列不存在"); return; } int validRowCount = 0; // 遍历所有行,统计目标列非空的行数 for (TableRow row : table.rows()) { // 可根据需求调整判断条件,比如排除特定值、判断数值类型等 if (!row.getString(columnIndex).isEmpty()) { validRowCount++; } } println("目标列的有效行数:" + validRowCount); // 原逻辑:温度<=7时随机取一行 if (temperature <= 7) { TableRow row = table.getRow(random(table.getRowCount())); // 可在这里处理获取到的行数据,比如打印目标列的值 println(row.getString(targetColumn)); } }
补充说明
如果你的需求只是确认目标列的行数(不管值是否为空),那行数和表格总行数一致,直接用table.getRowCount()即可——因为CSV表格里每一行都会对应所有列,哪怕列值为空。
内容的提问来源于stack exchange,提问作者timejumpone
相关产品推荐
相关产品推荐

