スケジュール/レポートタイプを示す名前修飾子に基づいて、2001Q1から2016Q1までの一連のテキストファイルを取り込むプログラムを作成しています。修飾子はサブセットデータフレームの辞書を繰り返し使用
keys=[' RI ','RCD','RCF','RCG','RCH','RCL','RCO','RCRII']
指定されたパスC(より良い名前の不足のために)キーと呼ばれている:\ファイルは、私が作成
files=[]
for k in keys:
for i in os.listdir(path):
if os.path.isfile(os.path.join(path,i)) and k in i:
files.append(i)
そして、すべての適格なテキストファイルの辞書を作成します辞書
df_dict={file[:-4].replace(" ","_"):pd.read_table(path+file,header=[0,1],index_col=0,error_bad_lines=False,dtype={'IDRSSD':object}, low_memory=False) for file in files}
サンプル辞書のように見える: {(Schedule_RI_2001Q1:のCol1 Col2にコルン)、 (Schedule_RCO_2001Q1:のCol1 Col2にコルン) (Schedule_RI_2005Q2:Col1Col2ColN) }
のキー値配列である。
レポートの種類に基づいてメイン辞書から辞書を作成する必要があります。
は関係なく、key.stripまたはkey.strip()私は、エラーメッセージが表示される使用のfor key in keys:
for k in df_dict.keys():
for v in df_dict.values():
if key in k:
key.strip={k:v}
、「『str』はオブジェクト属性 『ストリップ』は読み取りです:私は(私はそのアマチュアを知っている)、このスクリプトを思い付い「関数呼び出しに割り当てることはできません」、または「関数呼び出しに割り当てることはできません」。このタスクを達成するためのよりよい方法がありますか?私が集計辞書を作成した理由は、データの書式設定などを行うことです。辞書を壊すのを助けていただければ幸いです。
あなたは 'key.strip = {k:v}'でどうしようとしていますか?キーは 'keys'の中でただ一つの値にすぎません。どうしてあなたは再びそれを初期化したいのですか? – oxalorg
私はキーリストのキー要素を使って辞書を作成しようとしていました。キーリストの 'RI'要素にスペースがあるので、先頭と末尾のスペースを削除するためにstripを使用していました。私はRIがその名前でRIと一緒にすべてのスケジュール/レポートを含む辞書になることを望んでいました。 –
それはまさに私が推測したものです。私の答えはあなたにとって完璧に働くはずです。 – oxalorg