使用pandas创建数据框的数据框

10
我有一个数据框,收集了每日2个指标A和B的统计数据:
                  A             B
count  17266.000000  17266.000000
std        0.179003      0.178781
75%      101.102251    101.053214
min      100.700993    100.651956
mean     101.016747    100.964003
max      101.540214    101.491178
50%      100.988465    100.938694
25%      100.885251    100.830048

以下是创建它的一段代码:

day1 = {
    'A': {
    'count': 17266.0,
    'std': 0.17900265293286116,
    'min': 100.70099294189714,
    'max': 101.54021448871775,
    '50%': 100.98846526697825,
    '25%': 100.88525124427971,
    '75%': 101.10225131847992, 
    'mean': 101.01674677794136
    }, 
    'B': {
    'count': 17266.0, 
    'std': 0.17878125983374854, 
    'min': 100.65195609992342, 
    'max': 101.49117764674403, 
    '50%': 100.93869409089723, 
    '25%': 100.83004837814667, 
    '75%': 101.05321447650618, 
    'mean': 100.96400305527138
    }
}
df = pandas.DataFrame.from_dict(day1, orient='index').T

数据直接来自describe()。我有几个这样的描述(每天一个),我想将它们全部收集到一个单独的数据框中,以日期作为索引。
最明显的方法是将所有日结果堆叠到一个数据框中,然后按日分组并运行统计分析。但是,由于我处理的数据量很大,所以我想使用另一种方法。
最终结果应该如下所示:
                        A           B    
2014-12-24 count  15895.000000  15895.000000
        mean      99.943618     99.968860
        std        0.012468      0.011932
        min       99.877695     99.928778
        25%       99.934890     99.960445
        50%       99.943453     99.968847
        75%       99.952340     99.977571
        max       99.982930    100.002507
2014-12-25 count  16278.000000  16278.000000
        mean      99.937056     99.962203
        std        0.012395      0.012661
        min       99.884501     99.910567
        25%       99.928078     99.953758
        50%       99.936754     99.962411
        75%       99.945914     99.971473
        max       99.981512    100.003770

1
你能否创建一个字典,格式为 {日期: 该日期对应的描述性数据框}?然后你可以使用 pd.concat(dict) - joris
当然可以,这非常简单,但是它能够正常工作,谢谢!如果您将您的评论升级为答案,我将很乐意接受它。 - Christophe
1个回答

15
如果您能够创建一个{日期:针对该日期的描述数据帧}的字典,那么您可以使用pd.concat(dict)。从您的df开始:
In [14]: d = {'2014-12-24': df, '2014-12-25': df}

In [15]: pd.concat(d)
Out[15]:
                             A             B
2014-12-24 count  17266.000000  17266.000000
           std        0.179003      0.178781
           75%      101.102251    101.053214
           min      100.700993    100.651956
           mean     101.016747    100.964003
           max      101.540214    101.491178
           50%      100.988465    100.938694
           25%      100.885251    100.830048
2014-12-25 count  17266.000000  17266.000000
           std        0.179003      0.178781
           75%      101.102251    101.053214
           min      100.700993    100.651956
           mean     101.016747    100.964003
           max      101.540214    101.491178
           50%      100.988465    100.938694
           25%      100.885251    100.830048

当然,您可以将键制作为实际的日期而不是字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接