使用pandas的DataFrame的数据框架[英] DataFrame of DataFrames with pandas

本文是小编为大家收集整理的关于使用pandas的DataFrame的数据框架的处理方法,想解了使用pandas的DataFrame的数据框架的问题怎么解决?使用pandas的DataFrame的数据框架问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有以下 DataFrame 收集 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().我有几个这样的描述(每天一个),我想将它们全部收集到一个以日期索引的数据框中.

获得该数据的最明显方法是将所有每日结果堆叠到一个数据框中,然后按天分组并根据结果运行统计信息.但是我想要一种替代方法,因为我遇到了一个 MemoryError 与我处理的数据量.

最终的结果应该是这样的:

                        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

推荐答案

如果您能够制作 {date: describe_df_for_that_day} 的 dict,那么您可以使用 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

您当然可以将键设为真实日期而不是字符串.

本文地址:https://www.itbaoku.cn/post/1727858.html