2016-06-21 20 views
2

私はさまざまなブランドの売上データを持つデータフレームを持っています。私は最終的にブランド特有のデータフレームからファイルを凌駕する機能を作りたいと思っています。出力として一意の名前のExcelファイルを作成する必要がある以外はすべて正常に動作します。リファレンス関数内のデータフレーム名(pandas、python3)

def brandOverview(b): 
    brandWriter = pd.ExcelWriter("Brand.xlsx", engine='xlsxwriter') 
    b.to_excel(brandWriter, sheet_name='Data') 
    brandWriter.save() 

これは動作しますが、最終的には私が独自に機能(B)に置かれたデータフレームのために名前を付ける「Brand.xlsxを」希望:ここで私は、現在持っているものです。たとえば、私のデータフレームの名前が "Adidas"の場合、brandOverview(Adidas)は "Adidas.xlsx"という名前のファイルを出力します。

は、私が使用してみました:

brandWriter = pd.ExcelWriter((str(b)+".xlsx"), engine='xlsxwriter') 

を私が解読できるものから、これは最終的にエラーを起こし、データフレーム内のすべてのデータの文字列を生成しました。

答えて

2

あなたの試行は非常に近いです。 str(b)を変更し、この場合は'Adidas'を返すものと置き換える必要があります。データフレームの構造に関する情報は提供していません。ただし、これを動作させるには、bのどこかで'Adidas'にアクセスする必要があります。そこになければ、できませんこれを行う。それがあれば、することができます。これらのデータフレームを自分で作成しなかった場合、そのデータフレームがどこにどこにあるかを知ることができません。このデータフレームが'Adidas'であることをどのように知っていますか?それは辞書にありますか?もしそうなら、多分あなたは、このように、データフレームと辞書のキーを渡す必要があります。

def brandOverview(b, name): 
    brandWriter = pd.ExcelWriter(name + ".xlsx", engine='xlsxwriter') 
    b.to_excel(brandWriter, sheet_name='Data') 
    brandWriter.save() 

たぶん、ブランド名は、インデックスのname属性である:

def brandOverview(b): 
    brandWriter = pd.ExcelWriter(b.index.name + ".xlsx", engine='xlsxwriter') 
    b.to_excel(brandWriter, sheet_name='Data') 
    brandWriter.save() 

たぶん、ブランド名があります

def brandOverview(b): 
    brandWriter = pd.ExcelWriter(b.columns.name + ".xlsx", engine='xlsxwriter') 
    b.to_excel(brandWriter, sheet_name='Data') 
    brandWriter.save() 

最初の列名:列の名前属性で

def brandOverview(b): 
    brandWriter = pd.ExcelWriter(b.columns[0] + ".xlsx", engine='xlsxwriter') 
    b.to_excel(brandWriter, sheet_name='Data') 
    brandWriter.save() 

最終的には、十分な情報を提供していませんでした。これはあなたを助けるはずですが、私はあなたのサンプルデータをフォローアップして、さらに助けてくれることを期待しています。

+0

これは私に仕事をするのに十分な理解を与えました。最終的に私は使用した: 'brandWriter = pd.ExcelWriter(b.iloc [0] [0] +" xlsx "、engine = 'xlsxwriter')'それは私が必要とする文字列を引くことができる場所です。ありがとうございました! – Stephen

関連する問題