2017-04-24 6 views
-1

IDと会社名のExcelファイルがたくさんあるとします。ディレクトリにN個のExcelファイルがあり、すべてを1つのデータフレームに読み込みますが、各ファイルの会社名のスペルが少し異なり、N + 1列のデータフレームになります。パンダread_excel、csv;名前の列名はマッパーですか?

例えば列名のマッピングを作成する方法があります:

ので
col_mappings = { 
    'company_name': ['name1', 'name2', ... , 'nameN], 
} 

あなたの実行があなただけの1列に会社名のすべての異なる可能性をread_excelマッピングすることができたときに?また、任意のタイプのデータファイルでこれを行うことができますか?例えば。 read_csv ect ..

+1

[MCVE](https://stackoverflow.com/help/mcve)がなければこの質問に答えることは本当に難しいです。 – Craig

+1

'read_csv'の後に列の名前を変更できない理由はありますか? –

+0

@StephenRauch - 私がしていることは、私が書いた "合体"機能があり、問題のすべてのフィールドを合体して名前を変更することです。これらはすべて大量の負荷の後にあります。他の方法があるのであれば私はちょうど興味がありました。 – spitfiredd

答えて

0

ファイルを1つずつ読み込んだ後に連結していますか?はいの場合は、ファイルを読み込んだ後に列名を変更するだけです。あなたの質問から、あなたのデータフレームにはIdとCompanyNameという2つの列しかないと仮定します。したがって、インデックスを作成するだけで簡単に変更できます。

df = pd.read_csv(one_file) 
df.rename(columns={df.columns[1]:'company_name'}) 

次に、元のデータフレームに連結します。そうでない場合

、単にそれは元の列名を含むようDFから最初の行を削除し、所与の列名、

df = pd.read_csv(one_file, names=['Id','company_name']) 

で読み取ります。

.csvファイルと.xlsxファイルの両方で実行できます。

関連する問題