Не очень эффективно, но вы можете преобразовать все ячейки в списки, а затем просто добавить кадры данных следующим образом:
import pandas as pd
import numpy as np
np.random.seed(42)
df1 = pd.DataFrame(
[list('ABCD') for _ in range(5)]
)
df2 = pd.DataFrame(
[np.random.choice(list('ABCD'), size=4).tolist() for _ in range(5)]
)
df1 = df1.apply(lambda x: [[v] for v in x])
df2 = df2.apply(lambda x: [[v] for v in x])
df1 + df2
, который выводит
0 1 2 3
0 [A, C] [B, D] [C, A] [D, C]
1 [A, C] [B, D] [C, A] [D, A]
2 [A, C] [B, B] [C, C] [D, C]
3 [A, C] [B, C] [C, D] [D, A]
4 [A, D] [B, D] [C, D] [D, C]
См. Fluent Assertions. Вы можете сделать что-то вроде
"ABCDEFGHI".Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9);
new[] { 1, 2, 3 }.Should().HaveCount(4, "because we thought we put three items in the
collection"))
dtoCollection.Should().Contain(dto => dto.Id != null);
collection.Should().HaveCount(c => c >= 3);
dto.ShouldHave().AllPropertiesBut(d => d.Id).EqualTo(customer);
dt1.Should().BeWithin(TimeSpan.FromHours(50)).Before(dt2);
Action action = () => recipe.AddIngredient("Milk", 100, Unit.Spoon);
action
.ShouldThrow<RuleViolationException>()
.WithMessage("Cannot change the unit of an existing ingredient")
.And.Violations.Should().Contain(BusinessRule.CannotChangeIngredientQuanity
На основе моего исследования нет один, но если Ваше согласное для принесения в жертву лучшей перемобильности до, почему утверждение, неудавшееся и готовое добавить новый dll, можно сослаться на nunit и использование их....
См. http://sharptestex.codeplex.com/
Примечание: Sharptestsex, по-видимому, больше не будет активно разработан, рекомендуется альтернатива http: // www. fluentAssertions.com/.
Sharptestsex (острые тесты расширений) - это набор расширеных расширений. Основная цель состоит в том, чтобы написать короткие утверждения, в которых IDE IDE Visual Studio Intellisense является вашим руководством. #Testsex можно использовать с NUNIT, MSTESTS, XUNIT, MBUNIT ... даже в Silverlight.
Пример синтаксиса для сильно напечатанных утверждений (взятых из веб-страницы):
true.Should().Be.True();
false.Should().Be.False();
const string something = "something";
something.Should().Contain("some");
something.Should().Not.Contain("also");
something.ToUpperInvariant().Should().Not.Contain("some");
something.Should()
.StartWith("so")
.And
.EndWith("ing")
.And
.Contain("meth");
something.Should()
.Not.StartWith("ing")
.And
.Not.EndWith("so")
.And
.Not.Contain("body");
var ints = new[] { 1, 2, 3 };
ints.Should().Have.SameSequenceAs(new[] { 1, 2, 3 });
ints.Should().Not.Have.SameSequenceAs(new[] { 3, 2, 1 });
ints.Should().Not.Be.Null();
ints.Should().Not.Be.Empty();
ints.Should()
.Contain(2)
.And
.Not.Contain(4);
(new int[0]).Should().Be.Empty();