2017-08-02 33 views
0

我有一個由列表字典創建的熊貓數據框。 我想分解日期下的條目並創建一個名爲'Story'的新列。如何用另一列的數據創建一個新的熊貓數據框列

       2017-01-31   2017-02-01 
Gates, Bill.   [[SPGC-14075, 0.5]]     [0] 
Jobs, Steve.   [[SPGC-14075, 3.5]]     [0] 
Jobs, Steve.    [[SPGC-9456, 2.5]]     [0] 
White, John ANDERSON. [[SPGC-14075, 1.75]] [[SPGC-9456, 5.25]] 

理想輸出:

      Story   2017-01-31 2017-02-01 
Gates, Bill.   SPGC-14075   0.5     0 
Jobs, Steve.   SPGC-14075   3.5     0 
Jobs, Steve.   SPGC-94562   .5     0 
White, John ANDERSON. SPGC-14075  1.75     0 
White, John ANDERSON. SPGC-9456   0     5.25 

我如何去這樣做使用熊貓數據幀操作?

編輯:

使用nanojohn的解決方案我得到了這個輸出。八九不離十。仍然需要在2017-02-01分解最後一個條目。

     2017-01-31   2017-02-01  Story 
Gates, Bill.     0.50     0 SPGC-14075 
Jobs, Steve.     3.50     0 SPGC-14075 
Jobs, Steve.     2.50     0 SPGC-9456 
White, John ANDERSON.  1.75 [SPGC-9456, 5.25] SPGC-14075 
+0

可能比較容易從列表的字典做到這一點,是不是?您在創建數據框之前編輯您的字典。 – Stael

+0

我需要在字典中製作SPGCs鍵嗎? – jenkelblankel

+0

我以爲你會希望'Story'作爲鍵值,'SPGC -...'作爲值,但是有很多方法可以實現dict - > dataframe轉換。 – Stael

回答

0

您可以嘗試使用.apply()方法如下(假設你的數據幀是在一個叫df變量):

df['Story'] = df['2017-01-31'].apply(lambda x: x[0][0]) 
df['2017-01-31'] = df['2017-01-31'].apply(lambda x: x[0][1]) 
df['2017-02-01'] = df['2017-02-01'].apply(lambda x: x[0]) 
+0

我將該解決方案的輸出發佈到原始文章中。似乎90%的工作方式。 – jenkelblankel

+0

據我所知apply並不會將新項目添加到行索引 – Stael

相關問題