pythonで名前付きタプルを埋め込む方法はありますか?名前付きタプルまたはその他のクラスのパンダを持つfillna
私はこのTypeError
を取得しています:任意の回避策
df.replace(np.nan, q)
Traceback (most recent call last):
File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-31-6f8a86f11bbb>", line 1, in <module>
df.replace(np.nan, q)
File "C:\Anaconda2\lib\site-packages\pandas\core\generic.py", line 3440, in replace
raise TypeError(msg) # pragma: no cover
TypeError: Invalid "to_replace" type: 'float'
:
from collections import namedtuple
import pandas as pd
import numpy as np
df = pd.DataFrame([0, 0, 0, 0, np.nan, 0, 0, 0])
nametup = namedtuple('mynp', ['arg1', 'arg2'])
q = nametup(None, None)
df.fillna(q)
Traceback (most recent call last):
File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-25-363ec560dd77>", line 9, in <module>
df.fillna(q)
File "C:\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2762, in fillna
downcast=downcast, **kwargs)
File "C:\Anaconda2\lib\site-packages\pandas\core\generic.py", line 3101, in fillna
'you passed a "{0}"'.format(type(value).__name__))
TypeError: "value" parameter must be a scalar or dict, but you passed a "mynp"
もこれを試してみましたか?ありがとう!
警告として、スカラーでないエントリは実際にはパンダによってサポートされていないので、予期せぬバグの危険があります。時にはこれにもかかわらず便利ですが、私は実際に過去にいくつかに噛まれました。 – DSM
@DSMは洞察力に感謝して、別のアプローチを使用できるかどうかを見ていきます。あなたがパンダを使用するための日付でクラスを持っているときにはとても便利です。興味深いアプローチのおかげで –