1

interact(f)には特定の引数を無視する方法がありますか?f?私はデータフレームで渡すために使用する既定の引数を持っているという事実が混乱していると私は信じています。ここに私の機能は次のとおりです。ここでIpywidgets Jupyterノートブックインタラクト無視の引数

def show_stats(start,end,df_pnl=df_pnl): 
    mask = df_pnl['Fulldate'] >= start & df_pnl['FullDate'] <= end 
    df_pnl = df_pnl[mask] 
    #do some more transformations here 
    display(df_pnl) 

は私がやろうとしているものです:

interact(show_stats,start=start_str,end=today_str) 

そして、ここでは、私が取得していますエラーです:

enter image description here

私は仮説を立ててそのinteract何らかの形でdf_pnlが文字列に変更されます(これは対話出力の列ヘッダーのドロップダウンを与えるため)文字列にdf_pnl['Fulldate'].....を実行すると、エラーが表示されます。

どうすればこの問題を回避できますか?そのデータフレームを正しいデータフレームで処理している間に、その引数を関数から除外できますか?関数内の特定の引数を無視するための対話内のオプションはありますか?

おかげ

+0

解決策を試しましたか? –

+0

質問に答えるときに混乱している場合、このリンクにはいくつかの[役立つヒント](https://stackoverflow.com/help/someone-answers)があります。 –

+0

答えを受け入れてくれてありがとう。あなたが気にしないならアップヴォートに感謝します。私は疑問をupvotedのでちょうどちょうどそれが正しい?ありがとう、相棒 :) –

答えて

1

だから、サンプルデータフレームなしでこのソリューションをテストするには少し難しいですが、私はfunctools.partialは、あなたが探しているものであってもよいことだと思います。基本的にpartialでは、キーワード引数または位置引数のいずれかを事前にロードして新しい関数を定義することができます。下のコードを試してみてください。

from functools import partial 

def show_stats(start, end, df_pnl): 
    mask = df_pnl['Fulldate'] >= start & df_pnl['FullDate'] <= end 
    df_pnl = df_pnl[mask] 
    #do some more transformations here 
    display(df_pnl) 

# Define the new partial function with df_pnl loaded. 
show_stats_plus_df = partial(show_stats, df_pnl=YOUR_DATAFRAME) 

interact(show_stats_plus_df, start=start_str, end=today_str) 

更新:

またfixed機能ipywidgets試みることができます。

from ipywidgets import fixed 

def show_stats(start, end, df_pnl): 
    mask = df_pnl['Fulldate'] >= start & df_pnl['FullDate'] <= end 
    df_pnl = df_pnl[mask] 
    #do some more transformations here 
    display(df_pnl) 

interact(show_stats, start=start_str, end=today_str, df_pnl=fixed(df_pnl)) 

これで問題が解決しない場合は、下記にご意見ください。

関連する問題