C# Deedle DataFrame如何获取指定三列的逐行最大值
实现方案
你要实现按行取三列最大值的逻辑,直接对选中列的行集合做聚合即可,不需要额外重新索引排序:
// 选中目标三列后按行计算最大值,返回和原索引对齐的序列 var tr = df.Columns[new[] { "high_low", "high_pc", "low_pc" }] .Rows .Select(kvp => kvp.Value.As<double>().Max()); // 直接添加到原DataFrame df.AddColumn("tr", tr);
说明
- 原DataFrame已经是按
DateTime索引且排好序的状态,选取子列后会自动保留原索引和行顺序,不需要重复调用IndexRows和SortRowsByKey,计算得到的tr序列和原df的行是完全对齐的,不会出现错位问题。 - 如果你的三列数值类型不是
double,把As<double>替换为实际对应的数值类型(如float、decimal)即可。
内容的提问来源于stack exchange,提问作者Robnauticus
相关产品推荐
相关产品推荐

