2017-07-12 16 views
1

私は最初の列のすべての要素を分割し、両方の新しい列に列ヘッダを割り当てるパンダデータフレームを持っています。列を分割してパンダのデータフレームにヘッダを割り当てる

     0 1 2 3 4 

A|Item Name 25 26 31 40 45 B|Item Name 26 28 29 32 50 C|Item Name 31 32 12 32 11

の予想される出力

Ltr  Itm     0 1 2 3 4 

A Item Name 25 26 31 40 45 B Item Name 26 28 29 32 50 C Item Name 31 32 12 32 11

がしようとすると同じに変換するには、次のコードを使用:今列は何のheader.itを持っていないようなものがあります:

df2 = pd.DataFrame(df2.row.str.split('|', 1).tolist(), columns=['Let', 'Itm'])

しかし、データフレームに「行」属性がないというエラーが発生しました。

ご迷惑をおかけして申し訳ございません。ありがとう。

+0

を取得するには、インデックスのように見える、と間違いなくあなたはウォンを使用ラインので、「行」という名前の列はありませんアプローチはほとんど正しいが、仕事はしない。 – Vaishali

答えて

2

それがインデックスの場合は、

df.index = df.index.str.split('|', expand = True) 
df = df.reset_index().rename(columns = {'level_0': 'Ltr', 'level_1': 'Itm'}) 

を使用することができますあなたは

Ltr Itm   0 1 2 3 4 
0 A Item Name 25 26 31 40 45 
1 B Item Name 26 28 29 32 50 
2 C Item Name 31 32 12 32 11 
+0

ありがとう。魅力的に働いた。私が持っているもう1つの質問は、私も提案されている.split関数と一緒に列見出しを割り当てることができます。申し訳ありませんが、私はPythonとpandasにはかなり新しいです。 –

+0

もう一度ありがとうございます。あなたは最高です。 –

+0

ありがとうございました。インデックスの代わりにカラムを分割する場合は、df [['Ltr'、 'Itm']] = df.col.str.split(...)を使用してカラム名を直接割り当てることができますが、より良い方法を考える。 reset_indexを最初に実行してから分割することがあります。 – Vaishali

関連する問題