2
ある特定の列の一部の行がNaN
であるPandas DataFrameにマッピングを適用したいとします。これらは、以前のマッピングから残されています。ここで NaNのDataFrame行にマップを適用
mymap = defaultdict(str)
mymap["a"] = "-1 test"
mymap["b"] = "-2 test"
mymap["c"] = "-3 test"
df[ df["my_infos"].isnull() ] = df["something"].map(lambda ip: map_function(ip, mymap))
は関数である。
def map_function(ip, mymap):
# do stuff
for key, value in mymap.iteritems():
# do stuff
return stuff
return other_stuff
これは、それが全体のカラムを反復処理した後に終了しますが、例を示します
File "/opt/anaconda2/lib/python2.7/site-packages/pandas/core/indexing.py", line 527, in _setitem_with_indexer raise ValueError('Must have equal len keys and value ' ValueError: Must have equal len keys and value when setting with an iterable
はこの内のすべての行を選択するための正しい方法ですmy_infos
カラムはNaNですか?私はどういうわけか...それはそうではありません。
IIUCあなたは両側をマスクする必要があります:[[ "my_infos" DF] ISNULL()] 'df.loc = DF map(lambda ip:map_function(ip、mymap)) '問題は、あなたが左側をマスクしているが右側をマスクしていないことです。形状が一致しない – EdChum