2017-08-14 49 views
1

我在每個單元中都有一個帶有列表的數據框。對於數據框的每一行,我想要對列表的第一個元素進行分組,並對第二個元素進行平均。 這裏是一些假數據和DF的截圖來說明問題:通過Panda Dataframe中的系列列表進行分組

import pandas as pd 
df = pd.DataFrame({"Column A":[["Winter 2012",5],["Sommer 2012",10]], 
        "Column B":[["Sommer 2012",20],["Winter 2012",10]], 
        "Column C":[["Winter 2012",15],["Sommer 2012",30]]}) 
df 

      Column A   Column B   Column C 
0 [Winter 2012, 5] [Sommer 2012, 20] [Winter 2012, 15] 
1 [Sommer 2012, 10] [Winter 2012, 10] [Sommer 2012, 30] 

的第一線所需的輸出應該是這樣的:

  Column D   Column E 
0 [Winter 2012, 10] [Sommer 2012, 20] 
1 [Sommer 2012, 20] [Winter 2012, 10] 

完全被新的Python,我只是我無法將自己的頭圍繞在如何處理這個問題上。

回答

2

這裏有一種方法

In [410]: df.apply(lambda x: pd.Series(
        x.apply(pd.Series) 
        .groupby(0, as_index=False, sort=False) 
        .mean() 
        .values.tolist(), index=['Column D', 'Column E']), 
        axis=1) 
Out[410]: 
      Column D   Column E 
0 [Winter 2012, 10] [Sommer 2012, 20] 
1 [Sommer 2012, 20] [Winter 2012, 10] 
相關問題