是否可以使用 deedle 制作多级柱框?
Is it possible to have multi-level column frame using deedle?
我知道在 deedle 中可以有多级索引框架,但是是否也可以同时有多级列,例如在中使用 Pandas 库就是这种情况Python。例如,我想实现这样的目标:
我试图为该列传递一个元组,因为它是多级索引的情况,但以下内容不起作用:
dfRes.AddColumn(("Country 1", "Region 1"), data.ToOrdinalSeries());
如有任何帮助,我们将不胜感激!
Deedle 为此使用旧的 Tuple
类型,该类型在 C# 7 之前可用,并且是 F# 中用于元组的类型。所以,你可以让它工作,但你只需要使用 old-style C# Tuple
。 Deedle 附带了一个 Tuple.Create
帮助程序,使这更容易一些:
var dfRes = Frame.CreateEmpty<int, Tuple<string, string>>();
dfRes.AddColumn(Tuple.Create("Country 1", "Region 1"), new[] { 1, 2, 3 });
dfRes.Print();
就是说,我会考虑这在多大程度上是实际需要的 - 对于 multi-level 行键,您通常会这样做,以便您可以进行一些奇特的聚合。如果这只是为了演示,使用像 "Country 1.Region 1"
.
这样的字符串编码可能会更容易
我知道在 deedle 中可以有多级索引框架,但是是否也可以同时有多级列,例如在中使用 Pandas 库就是这种情况Python。例如,我想实现这样的目标:
我试图为该列传递一个元组,因为它是多级索引的情况,但以下内容不起作用:
dfRes.AddColumn(("Country 1", "Region 1"), data.ToOrdinalSeries());
如有任何帮助,我们将不胜感激!
Deedle 为此使用旧的 Tuple
类型,该类型在 C# 7 之前可用,并且是 F# 中用于元组的类型。所以,你可以让它工作,但你只需要使用 old-style C# Tuple
。 Deedle 附带了一个 Tuple.Create
帮助程序,使这更容易一些:
var dfRes = Frame.CreateEmpty<int, Tuple<string, string>>();
dfRes.AddColumn(Tuple.Create("Country 1", "Region 1"), new[] { 1, 2, 3 });
dfRes.Print();
就是说,我会考虑这在多大程度上是实际需要的 - 对于 multi-level 行键,您通常会这样做,以便您可以进行一些奇特的聚合。如果这只是为了演示,使用像 "Country 1.Region 1"
.