public void Display(Frame f) { var columnValues = new List <ColumnStatisticsView>(); for (int i = 0; i < f.Series.Count; i++) { List <double> doubles = GetColumnData(f, i, out int nullCount); if (doubles.Count == 0) { columnValues.Add(new ColumnStatisticsView()); continue; } columnValues.Add(new ColumnStatisticsView() { ColumnName = f[i].Name, DistinctValuesCount = doubles.Distinct().Count(), Mean = doubles.Mean(), Sum = doubles.Sum(), Min = doubles.Min(), Max = doubles.Max(), Kurtosis = doubles.Kurtosis(), Skewness = doubles.Skewness(), Median = doubles.Median(), NullCount = nullCount, Quartile25 = doubles.Quartile25(), Quartile75 = doubles.Quartile75(), StandardDeviation = doubles.StandardDeviation(), Variance = doubles.Variance() }); } SfGrid.ItemsSource = columnValues; }
public void Display(Frame df) { SfGrid.Columns.Clear(); int i = 0; foreach (Series s in df.Series) { SfGrid.Columns.Add(CreateSfColumn(s, i++)); } SfGrid.ItemsSource = Enumerable .Range(0, df.RowCount) .Select(rn => new TableRowView(df.GetRow(rn))); SfGrid.Columns.RemoveAt(SfGrid.Columns.Count - 1); }
private static List <double> GetColumnData(Frame f, int index, out int nullCount) { var result = new List <double>(); int invalids = 0; int nulls = 0; Series s = f[index]; if (s.DataType == typeof(double)) { result = (List <double>)s.Data; nullCount = 0; return(result); } foreach (object uv in s.Data) { if (ReferenceEquals(uv, null)) { nulls += 1; continue; } try { double v = Convert.ToDouble(uv); result.Add(v); } catch (FormatException) { invalids += 1; } catch (InvalidCastException) { invalids += 1; } } nullCount = nulls; return(result); }