2017-07-12 52 views
1

我有一個熊貓數據框,我想拆分第一列中的每個元素並將列頭分配給兩個新列。現在該列沒有header.it是一樣的東西:拆分一個列並在熊貓數據框中分配頭文件

     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

用下面的代碼,試圖將其轉化:

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

謝謝。像魅力一樣工作。我還有一個問題是,我是否也可以將列標題與建議的.split函數一起分配。我很抱歉,我對Python和熊貓很新。 –

+0

再次感謝。你是最好的。 –

+0

謝謝:)。如果你在分割列而不是索引,你可以直接使用df [['Ltr','Itm']] = df.col.str.split(...)來分配列名,但是對於索引,我可以'想想更好的方法。可能先reset_index,然後拆分 – Vaishali