垂直对嵌套数据框中的列表元素求和

时间:2016-11-15 21:54:31

标签: python pandas

我有一个名为dailyHistogram的数据框定义如下:

dailyHistogram = pd.DataFrame(
    {
        'NumVisits':[[0 for x in range(1440)] for y in range (180)],
        'DoW': [0]*ReportingDateRange.size
    },
    columns=['NumVisits','DoF'],
    index=ReportingDateRange
)

其中NumVisits是一个二维数组(1440乘180),并在180天内保存一些活动的直方图。 DoW只是一个包含星期几的专栏。此数据框中的索引是活动发生的日期。

我的问题是在dailyHistogram [“NumVisits”]上执行任何操作。

这就是dailyHistogram [“NumVisits”]的样子:

  

dailyHistogram [“NumVisits”]

     

缺货[193]:
  2016-01-01 [5,0,0,0,0,   0,0,0,0,0,0,0,0,0,0 ......

     

2016-01-02 [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ......

     

2016-01-03 [6,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ......

     

2016-01-04 [8,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ......

     

2016-06-26 [3,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ......

     

2016-06-27 [4,0,0,0,0,0,1,1,1,1,1,1,1,1,1,......

     

2016-06-28 [7,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1 ......

     

2016-06-29 [7,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ......

     

2016-06-30 [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ......

     

频率:D,名称:NumVisits,dtype:object

我想垂直地总结dailyHistogram [“NumVisits”]的每个元素,以获得一个包含1440名成员的列表。

1 个答案:

答案 0 :(得分:2)

试试这个:

let start = new Date(1478995200000), end = new Date(1479254400000);
let query = { shortURLs: { $elemMatch: { timestamp: { $gte: start , $lt: end }}}};
let projection = { fields: query };
let results = Meteor.users.find(query,projection).fetch();

设定:

In [84]: dailyHistogram
Out[84]:
                        NumVisits  DoF
0  [1, 0, 1, 1, 1, 1, 0, 1, 1, 1]  NaN
1  [1, 1, 0, 1, 0, 1, 0, 0, 1, 0]  NaN
2  [1, 0, 0, 0, 0, 1, 1, 0, 1, 0]  NaN
3  [0, 1, 0, 0, 0, 0, 0, 0, 1, 1]  NaN
4  [1, 1, 0, 0, 1, 1, 1, 1, 1, 0]  NaN

In [85]: dailyHistogram.NumVisits.apply(pd.Series).sum().tolist()
Out[85]: [4, 3, 1, 2, 2, 4, 2, 2, 5, 2]