Вероятно, причина в том, что возвращаемый вами индекс Series не совпадает с индексом DataFrame. Когда вы пытаетесь присвоить значения с помощью Серии, панды будут пытаться выровнять индексы. Там, где они этого не делают, вместо этого будут вставлены значения NaN.
Если вы знаете подходящую форму, вы можете назначить значения напрямую, используя:
Resultado['PRECO'] = valorPrecoMaterial(Resultado).values
Вы расширили класс Event для его отправки с дополнительными данными, теперь, если вы хотите, чтобы класс Loader отправлял ваш пользовательский тип события, расширьте класс Loader, чтобы сделать это (или любой другой класс, с которым вы хотите сделать это). В этом примере я переопределю URLLoader с этой функциональностью (потому что Loader фактически отправляет события из своего contentLoaderInfo, которому нужны два переопределенных класса, и я просто хочу сделать его простым)
package com.net
{
import flash.net.URLLoader;
import flash.events.Event;
import com.events.CustomEvent;
public class CustomLoader extends URLLoader
{
// URLLoader already has a data property, so I used extraData
public var extraData:*;
override public function dispatchEvent(event: Event) : Boolean
{
var customEvent: CustomEvent = new CustomEvent(event.type, extraData, event.bubbles, event.cancelable);
return super.dispatchEvent(customEvent);
}
}
}
Теперь, чтобы использовать это с вашим классом CustomEvent, попробуйте этот код в вашем .fla
import com.net.CustomLoader;
import com.events.CustomEvent;
var loader: CustomLoader = new CustomLoader();
loader.extraData = "Extra Data";
loader.load(new URLRequest("test.xml"));
loader.addEventListener(Event.COMPLETE, loadComplete);
function loadComplete(event: CustomEvent) : void
{
trace(event.data); // Extra Data
}
BAM! Пользовательские данные о ваших изначально отправленных событиях!
Ниже показан самый чистый способ создания настраиваемого события. Как правило, типы событий имеют открытые статические ссылки, набранные всеми прописными буквами. Когда событие отправляется, оно передает объект Event или CustomEvent в метод обработчика события. Здесь вы можете получить переданное вами значение.
package com.hodgedev.events
{
import flash.events.Event;
public class CustomEvent extends Event
{
public static const VALUE_CHANGED:String = "VALUE_CHANGED";
public var value:Number;
public function CustomEvent(pValue:Number)
{
super(CustomEvent.VALUE_CHANGED);
value = pValue;
}
public override function clone():Event
{
return new CustomEvent(value);
}
}
}
Когда мы отправляем события, мы создаем новый экземпляр события, которое нужно передать как таковое.
private var _someValue:int = 12;
dispatchEvent(new CustomEvent(_somevalue));