我想将数据列添加到deedle数据帧。 我是这样做的,它有效,但我相信应该有更好的方法吗?
void addTrendValues(Frame<int, string> df){
List<double> trend_val = new List<double>();
df.FillMissing(0);
List<int> indexes= new List<int>();
for(int i =0; i<1000;i++){
double trendpips = getPipsTilNextTrend(df,i);
trend_val.Add(trendpips);
indexes.Add(i);
if(i% 10000 == 0) { Console.WriteLine(i) ;}
}
df.AddColumn("trend_val",new Series<int, double>(indexes.ToArray(),trend_val.ToArray()));
}
有什么想法吗?
答案 0 :(得分:0)
如果您以某种方式生成IEnumerable<KeyValuePair<K,V>>
,则可以使用Deedle提供的ToSeries
扩展方法。以下使用LINQ非常好(但它也删除了您可能想要恢复的打印)。
var newSeries = Enumerable.Range(0, 1000).Select(i =>
KeyValue.Create(i, getPipsTilNextTrend(df, i))).ToSeries();
df.AddColumn("trend_val", newSeries);