df = Daru::DataFrame.from_csv("df.csv")
df.set_index "time"
df.index = Daru::DateTimeIndex.new(df.index)
df
<Daru::DataFrame(5x2)>
min max
2018-01-01 101 103
2018-01-02 102 105
2018-01-03 103 200
2018-01-04 104 109
2018-01-05 105 110
Я не могу рекомендовать выше, чем Вы прочитывающий регистрации Bart Де-Смет ( http://community.bartdesmet.net/blogs/bart/ ), он является действительно блестящим когда дело доходит до Лямбды.
Его недавний ряд покрыл динамическую Лямбду, начиная с http://community.bartdesmet.net/blogs/bart/archive/2008/08/26/to-bind-or-not-to-bind-dynamic-expression-trees-part-0.aspx
Абсолютно красивый код.
Я вижу два способа, которыми можно динамично генерировать лямбду. Вы могли попробовать Отражение. Испустите, чтобы генерировать IL (байт-код .NET) непосредственно и назвать их как лямбду, или можно использовать Систему. CodeDom и Microsoft. До-диез. CSharpCodeProvider, чтобы сгенерировать код от высокоуровневых конструкций. То, что Вы хотите сделать, зависит от того, как Вы хотите, чтобы пользователь ввел этот материал. Если Вы хотите, чтобы пользователь записал C# тогда, можно просто использовать созданный в compliler.
Генерация Linq динамично должен быть легче. Необходимо быть в состоянии генерировать запросы LINQ как деревья выражений во времени выполнения и затем передать их в IQueryable для выполнения. Я предложил бы, чтобы Вы изучили документацию относительно IQueryable для получения дополнительной информации об этом. Иначе должен был бы предопределить несколько запросов linq и затем позволить пользователю объединять их в цепочку вместе. Это должно быть осуществимо, потому что любой запрос Linq возвращает IEnumerable, который может быть использован следующим запросом Linq.
Другая возможность состоит в том, чтобы интегрировать время выполнения сценариев в Вашу программу, так, чтобы Ваши пользователи могли записать бизнес-логику в DSL. IronPython был бы кандидатом.
Я не понимаю то, что делает Вы означаете говорить "лучший способ". Было бы лучше обеспечить простой пример того, чего Вы хотите достигнуть. Создание динамического выражения LINQ не трудно, но хитро.
Вот пример динамического linq создания выражения:
Лямбда-выражения могут быть легко созданы через Систему. Linq. Пространство имен выражений.
System.Linq.Expressions - это то, что вам нужно. Я написал красивый пользовательский интерфейс, который позволяет пользователям определять и создавать запросы динамически в виде дерева выражений. Затем вы можете передать это Linq2SQL или клиенту по вашему выбору.