map
+ multiply
Ваше объединение основано на одном столбце, где ключ уникален в df2
, поэтому сопоставьте.
df1['soln'] = df1.number.mul(df1.alpha.map(df2.set_index('alpha').mult))
# alpha number soln
#0 A 1 2
#1 A 2 4
#2 A 3 6
#3 B 4 12
#4 B 5 15
#5 B 6 18
#6 C 7 28
#7 C 8 32
#8 C 9 36
Можно установить DateTime на Nullable. DateTime по умолчанию не nullable. Можно сделать это nullable несколькими способами. Используя вопросительный знак после типа DateTime? myTime или использование универсального стиля Nullable. Я добавил несколько ссылок на MSDN.
DateTime? nullDate = null;
или
DateTime? nullDate;
DateTime? MyDateTime {get; set;}
MyDateTime = (dr["f1"] == DBNull.Value) ? (DateTime?)null : ((DateTime)dr["f1"]);