如何通过索引删除gota DataFrame中的行?
用Gota删除DataFrame指定行的方法
Gota确实没有提供直接删除行的API,但可以通过筛选保留目标行以外的所有数据来实现需求,下面是两种实用的方法(假设你已经用dataframe.ReadCSV读取了CSV文件到df变量中,行索引从0开始):
方法一:用Filter函数过滤目标行
通过自定义过滤条件,排除掉指定索引的行,返回新的DataFrame:
import ( "github.com/go-gota/gota/dataframe" "log" ) func main() { df, err := dataframe.ReadCSV("your_file.csv") if err != nil { log.Fatal(err) } // 定义要删除的行索引(示例为第2行,索引从0开始) targetRowIdx := 2 // 过滤掉目标行 newDF := df.Filter(func(row dataframe.Row) bool { return row.Index() != targetRowIdx }) }
方法二:拆分拼接DataFrame
把原DataFrame拆分成目标行之前的部分和之后的部分,再拼接起来:
import ( "github.com/go-gota/gota/dataframe" "log" ) func main() { df, err := dataframe.ReadCSV("your_file.csv") if err != nil { log.Fatal(err) } targetRowIdx := 2 // 取目标行之前的所有行 part1 := df.Range(0, targetRowIdx) // 取目标行之后的所有行 part2 := df.Range(targetRowIdx+1, df.Nrow()) // 拼接得到删除后的新DataFrame newDF := part1.Append(part2) }
注意事项
- Gota的DataFrame是不可变对象,所有操作都会返回新的实例,不会修改原DataFrame
- 行索引从0开始,要确认你要删除的
i对应的索引值(比如第1行对应索引0)
内容的提问来源于stack exchange,提问作者Ymi
相关产品推荐
相关产品推荐

