F# Deedle 和 Multi 索引
F# Deedle and Multi Index
我最近开始学习 F# for Data Science(来自简单的 C# 和 Python)。我开始习惯科学的功能第一范式的力量。
但是,我仍然对如何处理我可以在 Python 中使用 pandas 轻松解决的问题感到困惑。它与多索引时间序列/数据框有关。我已经广泛检查了 Deedle,但我仍然不确定 Deedle 是否可以帮助我实现这样的目标 table:
Column Index 1: A || B
Column Index 2: A1 A2 || B1 B2
Column Index 3: p1 p2 | p1 p2 || p1 p2 | p1 p2
Row Index:
date1 0.5 2. | 2. 0.5 || 3. 0. | 2. 3.
date2 ......
当 Index1 = A 等时能够对所有 p1 系列求和的想法
我没有找到使用 Deedle 的例子。
如果不可用,您会推荐我的数据的哪种结构?
感谢您帮助 F# 中的新手(但爱上了)
在 Deedle 中,您可以使用元组作为键来创建具有层次索引的框架或系列:
let ts =
series
[ ("A", "A1", "p1") => 0.5
("A", "A1", "p2") => 2.
("A", "A2", "p3") => 2.
("A", "A2", "p4") => 0.5 ]
Deedle 对此确实有一些特殊处理。例如,它将输出数据为:
A A1 p1 -> 0.5
p2 -> 2
A2 p3 -> 2
p4 -> 0.5
要对层次结构的一部分应用聚合,您可以使用 applyLevel
函数:
ts |> Series.applyLevel (fun (l1, l2, l3) -> l1) Stats.mean
ts |> Series.applyLevel (fun (l1, l2, l3) -> l1, l2) Stats.mean
第一个参数是一个函数,它获取键的元组并选择要分组的级别部分 - 因此以上两个参数分别在顶部和顶部两个级别上创建聚合。
我最近开始学习 F# for Data Science(来自简单的 C# 和 Python)。我开始习惯科学的功能第一范式的力量。
但是,我仍然对如何处理我可以在 Python 中使用 pandas 轻松解决的问题感到困惑。它与多索引时间序列/数据框有关。我已经广泛检查了 Deedle,但我仍然不确定 Deedle 是否可以帮助我实现这样的目标 table:
Column Index 1: A || B
Column Index 2: A1 A2 || B1 B2
Column Index 3: p1 p2 | p1 p2 || p1 p2 | p1 p2
Row Index:
date1 0.5 2. | 2. 0.5 || 3. 0. | 2. 3.
date2 ......
当 Index1 = A 等时能够对所有 p1 系列求和的想法
我没有找到使用 Deedle 的例子。
如果不可用,您会推荐我的数据的哪种结构?
感谢您帮助 F# 中的新手(但爱上了)
在 Deedle 中,您可以使用元组作为键来创建具有层次索引的框架或系列:
let ts =
series
[ ("A", "A1", "p1") => 0.5
("A", "A1", "p2") => 2.
("A", "A2", "p3") => 2.
("A", "A2", "p4") => 0.5 ]
Deedle 对此确实有一些特殊处理。例如,它将输出数据为:
A A1 p1 -> 0.5
p2 -> 2
A2 p3 -> 2
p4 -> 0.5
要对层次结构的一部分应用聚合,您可以使用 applyLevel
函数:
ts |> Series.applyLevel (fun (l1, l2, l3) -> l1) Stats.mean
ts |> Series.applyLevel (fun (l1, l2, l3) -> l1, l2) Stats.mean
第一个参数是一个函数,它获取键的元组并选择要分组的级别部分 - 因此以上两个参数分别在顶部和顶部两个级别上创建聚合。