2017-05-05 6 views
-2
#define list of fields to run match for 

fieldlist = ['MATTER NUMBER','MATTER NAME','CLAIM NUMBER LISTING'] 

#loop through each field in fieldlist 
for field in fieldlist: 
    #define dfname as the field with spaces replaced with underscores 
    dfname = '{}'.format(field.replace(' ','_')) 
    #create df with dfname 
    '{}'.format(dfname) = checkdf['{}'.format(field)].dropna() 

エラーは最終行にあります。私も試しました:動的に名前を付けて後で変数としてデータフレーム名を参照しようとすると、 'SyntaxError:関数呼び出しに割り当てることができません'

'{}'.format(dfname) = checkdf['{}'.format(field)].dropna() 

編集:これは混乱していた場合はごめんなさい。私はcheckdfからfieldlistの各フィールドに関連するデータフレーム名とカラムを作成しようとしています。 checkdfは、fieldlistにリストされている列を含む既存のデータフレームです。私は最後の行にデータフレーム名(dfname)と列名(フィールド)を入力するために、format関数を使用しようとしていました。たとえば、私は最初のループを読み取るためのpythonを希望 :

dfname = MATTER_NUMBER 
MATTER_NUMBER = checkdf['MATTER_NUMBER'] 
+2

はい、その行が壊れています。あなたは何をしようとしているのですか? –

+0

私は思いやりの場所から来て、このコメントにゼロの判断があると私に信じています。あなたは、オンラインPythonチュートリアルを行うことでうまくやってくれるだろう。ちょうどGoogleの "pythonチュートリアル"。あなたが間違っていることは、私たちのほとんどには明らかであり、チュートリアルを終えればあなたにもなるでしょう。残念ながら、Stackoverflowは基本的な教授を受ける場所ではありません。少なくとも私の意見ではない。問題ではない、チュートリアルまたは2つが必要です。 – piRSquared

+0

スティーブン - 私は何をしようとしているのか理解するのに役立つかもしれないいくつかの追加情報を追加しましたか?ありがとう! piRSquared - ご存じの方は、この問題に対処するチュートリアルをご覧ください。私がループしてこれらのデータフレームに動的に名前を付ける理由は、親データフレーム(checkdf)から複数の列にこれを適用したいと思う約100行のコード(大部分の文字列操作)があるからです決済される。できればコードの重複を避けようとしています。あなたがより良い方法を考えて考えることができれば、私はすべての耳になっています – mdl003

答えて

-1

あなたは'{}'.format(dfname)に新しい値を割り当てることはできません、それはそれが何であるかである(あなたが変更することはできません何のため=を使用して、関数が戻ります関数の各可能な入力)、文字列を返す関数呼び出し。最後の行の=前の部分を変更します。

'{}'.format(dfname) = checkdf['{}'.format(field)].dropna() 

私はあなたがここでやろうとしているかわからないので、私はこれであなたを助けることができません。


編集:あなたはおそらくしたい:最後の行で

dfname = checkdf['{}'.format(field)].dropna() 

+0

私は何かしようとしていることを理解するのに役立つかもしれないいくつかの追加情報を追加しましたか?ありがとう – mdl003

+0

編集をご覧ください。 –

関連する問題