2016-04-15 13 views
0

列名をcsvファイルから呼び出すデータセットに入れたいとします。 私のコードは完全に正常に動作します。csvファイルを使用して列に名前を付ける方法

DF2 = pd.DataFrame(data=DF1,index=SKU, 
    columns=['USER1','USER2','USER3','USER4','USER5','USER6']) 

6列。

私は約50 +の列を持っていて、リストを入力するのではなくローカルに保存されているUSERIDという名前のcsvファイルから列名を読みたいと思います。どうしたらいいですか?

次のコードは、

USERID = pd.read_csv("C:\EVALUATE\USERID.csv") 
DF2 = pd.DataFrame(data=DF1,index=SKU, columns=USERID) 

任意の提案を動作しませんでしたか?

+0

最後に、何らかの理由で、あなたが本当にパイプに標準入力からデータを望んでいない、場合、あなたはそのようにPythonで直接それを読むことができますUSERID) '? – Francesco

+0

USERID.csvファイルの形式は何ですか?最初の行に列名が記載されている1行のファイルですか?または、1行に1つの名前が別々の行にあります。 –

答えて

1

ファイルはCSV形式であることを持っています - あなたは可能性があり、単純にpipe the column names from standard inputsplitting the input lines、その後chaining them togetherによって空白で区切られた単語の流れのように:?

import fileinput 
import itertools 

USERID = itertools.chain(*(line.split() for line in fileinput.input())) 
DF2 = pd.DataFrame(data=DF1,index=SKU, columns=USERID) 

次に、あなたがファイルを持っていることを考えるとUSERID.txtこれは次のようになります。

USER1 USER2 
USER3 
USER4 USER5 
USER6 

... python DF2.py < USERID.txtPOSIX shellまたはin a Windows shellおよびlist(USERID)のいずれかが['USER1','USER2','USER3','USER4','USER5','USER6']のようになります。

この場合の唯一の欠点は、空白を含む列名を使用できないことですが、その要件を満たすためにこのコードとデータ形式を変更するのは簡単です。 (プリント `の出力は何

import itertools 

with open("C:\EVALUATE\USERID.txt", "r") as USERID_instream: 
    USERID = itertools.chain(*(line.split() for line in USERID_instream)) 
DF2 = pd.DataFrame(data=DF1,index=SKU, columns=USERID) 
+0

ありがとう、すべての3つの良いアイデアです。それは完璧に働いた!ありがとうございました! – Anu

+0

もしあなたが本当に私に感謝したいのであれば、私は現在、いくつかの評判の点を探しています。) – errantlinguist

+1

@ errantlinguist。完了、答えを受け入れました – Anu

関連する問題