dataframe - 修改go中Stringer接口(interface)中的一个默认值

标签 dataframe go interface gota

我在这里查看 gota 数据框中的打印界面: https://github.com/kniren/gota/blob/master/dataframe/dataframe.go#L99

我看到默认值是 shortCols = true,给定 here .

当我调用打印数据框时,如何覆盖此值以在打印时使用 shortCols = false 进行打印?

fmt.Println(fil)

例如,我想打印所有列,而不仅仅是前 5 列,因为上面的结果如下:

[31x16] DataFrame

    valA   valB    valC    valD    valE        ...
 0:  578   8.30     491    7959    1.040000    ...
 1:  577   8.30     291    7975    2.050000    ...
 2:  466   16.7     179    6470    3.210000    ...
 3:  592   9.03     194    8212    4.040000    ...

最佳答案

如果不修改库,您将无能为力。

如果修改库是一个选项,您有几种可能性:

  1. 更改内部格式化函数的名称,以便将其导出并调用它。这需要做更多的工作,因为每次要打印 DataFrame 时都需要显式调用一个函数,但如果您想对库的工作方式进行最少的更改,这是一个合理的选择.

    基本上将第 101 行和第 104 行的 print 更改为 Print(我认为这是该函数唯一出现的地方;如果不是,编译器会很乐意指出其他:P)

  2. df.String 的定义中将参数更改为 df.print。这确实是微不足道的,但它具有改变默认行为的效果,这可能是好事,也可能不是好事。

    对于此选项,只需更改第 101 行以返回 df.print(true, false, true, true, 10, 70, "DataFrame") 或满足您需要的任何组合。

  3. 为您想要的每种打印格式添加一个新方法,并显式调用这些新方法。这比 #1 或 #2 工作更多,但有些人可能更喜欢它。

就个人而言,我会选择 #1,但你的问题让 #2 听起来更像你想要的。

关于dataframe - 修改go中Stringer接口(interface)中的一个默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46750900/

相关文章:

json - Golang - 无法在 []interface{} 中访问 map

python - Pandas:如何根据条件语句添加新数据行?

r - 在R中将因子转换为时间

go - 为什么我的交叉编译的 CGO 二进制文件不能在 Raspberry Pi (Raspbian) 上运行?

go - 糟糕的 Golang http 服务器性能

java - 转换派生 Java 接口(interface)的集合(泛型)

c# - 我可以将基于接口(interface)的对象传递给 MVC 4 WebApi POST 吗?

c# - 在不同的命名空间中实现多个属性

python - 根据 Pandas 中的列表删除行

python - 在 pandas 数据框中选择具有特定列值的行