2017-08-02 34 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

相关问题