本文介绍了Python3 定义和使用多个二维数据的最佳方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有大量数据:大约 10 种资产类别,每年大约一百年的利率.我一直在使用字典结构,以便我可以像这样访问当年的费率:

rate = asset_class_1.get(year)

但是定义它很麻烦,我更愿意将 asset_class 作为更广泛的数据结构的一部分来访问——所以是一个 2D 字典.有没有更好的办法?

解决方案

使用 Pandas DataFrame.

将pandas导入为pd# 示例数据asset_class_1 = {y: r 代表 y, r in zip(range(1901, 2000), range(1, 100))}asset_class_2 = {y: r+100 for y, r in zip(range(1901, 2000), range(1, 100))}asset_classes = pd.DataFrame({'class_1': asset_class_1, 'class_2': asset_class_2})

>>>资产类别class_1 class_21901 1 1011902 2 1021903 3 1031904 4 1041905 5 105…………1995 95 1951996 96 1961997 97 1971998 98 1981999 99 199[99 行 x 2 列]>>>资产类别['class_1'][1959]59

您还可以选择整列或整行:

>>>资产类别['class_1']1901 11902 21903 31904 41905 5..1995 951996 961997 971998 981999 99名称:class_1,长度:99,数据类型:int64>>>asset_classes.loc[[1959]]class_1 class_21959 59 159

查看入门教程,快速了解数据结构.

I have a large set of data: for about 10 asset classes, the interest rate for each year for around a hundred years. I had been using a dictionary structure so that I could access the rate for the year like this:

rate = asset_class_1.get(year)

But defining it is cumbersome, and I would prefer to access the asset_class as part of a broader data structure -- so a 2D dictionary. Is there any better way?

解决方案

Use a Pandas DataFrame.

import pandas as pd

# Example data
asset_class_1 = {y: r for y, r in zip(range(1901, 2000), range(1, 100))}
asset_class_2 = {y: r+100 for y, r in zip(range(1901, 2000), range(1, 100))}

asset_classes = pd.DataFrame({'class_1': asset_class_1, 'class_2': asset_class_2})
>>> asset_classes
      class_1  class_2
1901        1      101
1902        2      102
1903        3      103
1904        4      104
1905        5      105
...       ...      ...
1995       95      195
1996       96      196
1997       97      197
1998       98      198
1999       99      199

[99 rows x 2 columns]
>>> asset_classes['class_1'][1959]
59

You can also select whole columns or whole rows:

>>> asset_classes['class_1']
1901     1
1902     2
1903     3
1904     4
1905     5
        ..
1995    95
1996    96
1997    97
1998    98
1999    99
Name: class_1, Length: 99, dtype: int64
>>> asset_classes.loc[[1959]]
      class_1  class_2
1959       59      159

Check out the Getting started tutorials for a quick intro to the data structures.

这篇关于Python3 定义和使用多个二维数据的最佳方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 07:32