Excelのスプレッドシートからデータを取得した場合、変更される行には最初の列が入力されます(他のエントリは空白です)。その値は、値が再び変化するまで、次のN行について持続すると仮定されます。以下に示すようにStrange Pandas Behavior前の行の値でNaNを更新する
だから、パンダはこれをインポートしない - ここにはサプライズ:
動物
猫
NaNの
NaNの
のNaN
犬
NaNの
のNaN
牛
はNaNに
私は最後の有効な値とNaNを交換する必要がある - ので、上記の例では:
動物
猫
猫
猫
猫
犬
犬
犬
牛
牛
私は思いついた、以下、動物の列名を仮定:
df.Animal.where(〜df.Animal.isnull()、df.Animal.shift())
パンダが順番に実行されている場合、それはすべき以前の "動物"は常に入力する必要がありますが、これを実行するとCat、Dog、Cowを表す最初のNaNだけが更新され、他のNaNは残ります。
私はshift()をハードコードされた文字列に置き換えると、ロジックがうまく見えます。
これは、Pandasが厳密な順序で実行されておらず、おそらくマップ操作を並列化していると仮定します。
この場合(または私が何か別のことをしている場合) - どうすればいいですか?
ありがとうございます!
フィル。
はい! certianly問題を解決する - 多くのありがとう!私が質問を終わらせる前に私の元の建設が失敗する理由はまだ不思議です。 – Phil
私の編集をご覧ください。 – blacksite
はい - これは私が疑ったものです - もう一度非常に助けてくれてありがとう! – Phil