2017-11-22 10 views
0

私はCSVファイルから読み込んだパンダデータフレームを持っています。パンダデータフレームを翻訳する

CSVファイルのいくつかの列を含む大きなDataframeを作成したいのですが、ヘッダ名が異なるので翻訳が必要です。

CSVファイルに含まれていない大きなDataframe値は、デフォルト値に設定する必要があります。

これまでのところ、CSVのデータフレームから始め、辞書を使用して列名を変換することをお勧めします。次に、結果の構造体に残りの列を追加することができます。これは少しclunky thoを感じる - これに最善の方法にどのような提案?

説明のための例

初期CSVファイル:

Name,Age,Address,PhoneNumber 

DATAFRAME出力:我々は持っている上記の

- 年齢=年齢、フルネーム=名前、HomeAddress =住所。

たとえば、国籍= "USA"、WorkAddress = "Google"、StarSign = "Leo"などの既定値があります。

PhoneNumberは出力では完全に無視されます。

Age,Nationality,FullName,HomeAddress,WorkAddress,StarSign 

答えて

2

IIUC、あなたはデュアルpd.concatを利用し、pd.concatのすなわち

init_df = init_df.rename(columns = {'Name':'FullName','Address':'HomeAddress'}) 

df = pd.DataFrame({'Nationality':["USA"], 'WorkAddress':["Google"], 'StarSign':["Leo"]}) 

final_df = pd.concat([init_df,pd.concat([df]*len(init_df)).set_index(init_df.index)],axis=1) 
+0

使用([DF] * lenは(init_df)の名前を変更することができます素晴らしいです。私のinitial_dfは、その列が含まれていた場合私はfinal_dfから削除したかったのですが、別の文を使わずにそれを削除する方法はありますか? – Phil

+1

'pd([init_df [cols]、....' 'cols'は列 – Dark