2017-08-22 6 views
-2

私は、CSVファイルにデータフレームをエクスポートするPythonの関数の下に持っています。私はそれがスクリプトPythonでDataFrameの名前を取得するにはどうすればよいですか?

finalExport(dataAllR, sourcePath, header, started) 
  • dataAllRの下に使用して呼び出す:データフレーム
  • sourcePathの名前:パス
  • header:列
  • startedのリスト:時間

def finalExport(data, exportPath, header, te): 
    print('# USDF: "finalExport" :-') 
    exportPath = exportPath + '\\final_py_upload' + data + '.csv' 
    data.to_csv(exportPath, columns = header, sep = ',', index = False) 
    print('Process done, result file stored in: ', exportPath) 
    if te != '': tpe(te) 
    return 
私は、データフレーム名ごとにファイル名を生成したい

exportPath = exportPath + '\\final_py_upload' + data + '.csv' 
#            ^

は、私は、スクリプト内の関数を呼び出している間、私は渡されたデータフレームすなわちdataAllRの名前を使用します。

助けてください。あなたがname属性を定義した後、あなたの場合は

import pandas as pd 
df = pd.DataFrame() 
df.name = 'My Data Frame' 
print(df.name) # My Data Frame 

:Pythonはあなたがオブジェクトに任意の属性名を割り当てることができますので

+0

@Christianディーンは、はいdata.name –

+0

@Christianディーン、おかげでたくさん、私がチェックします。 –

+0

私の答えを見てください。私は少し間違っていた。データフレームに自分自身で名前を付ける必要があります。 –

答えて

4

、あなたはそれの名前を表現するために、あなたのデータフレームにnameという名前の属性を割り当てることができますdataAllR用:

あなたが使用することになり
dataAllR.name = 'dataAllR' 

exportPath = exportPath + '\\final_py_upload' + data.name + '.csv' 

または、さらに良い:

exportPath = f'{exportPath}\\final_py_upload{data.name}.csv' 
+0

'f '... {} ...''構文はPython 3.6以降でのみ利用可能です。 – holdenweb

+1

@holdenwebはい、わかっています。彼は明示的に彼のタイトル "python 3.6"で言った。私はちょうど編集しました。 [質問の編集履歴](https://stackoverflow.com/revisions/45818851/1)を参照してください。私はPython 3.6タグで編集します。 –

+0

@Christian Dean、私はdataAllR.name = 'dataAllR'を使用しました。ありがとう –

2

問題の事実は、Pythonの値は名前を持っていないということです、彼らは名(時々 - 第二の例を参照)に結合するです。書き込むとき

a = "a string" 
b = a 

"a string"の名前は何ですか? a、またはb、またはその両方?同様に、書き込み時

lst = ["orange", "banana", "apple"] 

"apple"の名前は何ですか? lst[2]は名前ではなく、コンテナの要素への参照です。 This video by Ned Batchelderは、まだPythonには比較的新しいものに対する混乱の潜在的な原因について議論しています。

残念ながら(?)パンダのデータフレームは、それのようname属性か何かを持っていません。 Pythonの柔軟性を考えると、あなたが最初の場所でそれらの名前を導出する方法の問題に直面することでしょうが、そのような属性を維持しましたNamedDataFrameサブクラスを定義することは非常に簡単だろう。

関連する問題