[英]DataFrame of DataFrames with pandas
我有以下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}的詞典,那么你可以使用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
你當然可以使鍵實際日期而不是字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.