【问题标题】:What is the best way to represent 2D data with an attribute?用属性表示 2D 数据的最佳方式是什么?
【发布时间】:2021-12-29 21:37:08
【问题描述】:

假设我有一个结构如下的 excel 文件:

Year Type A Type B Type C Type A Type A
London Paris Lisbon Spain Berlin
2010 70 72 81 84 42
2011 20 32 31 82 92
2012 50 42 21 39 22
2013 72 12 51 82 52

使用 Pandas 或 Xarray 表示这一点的最佳方式是什么,同时能够:

  • 获取所有类型 A(或任何其他类型)的城市并绘制年份
  • 绘制所有城市,无论其类型如何

我考虑过重新排序表格,使用城市作为列,但是我如何将每个城市类型设置为某种元数据,因为它不是我真正想要表示的数据?

【问题讨论】:

    标签: python pandas python-xarray


    【解决方案1】:

    你可以先把数据整理成这个表格。

    Year Type City Value
    2010 A London 70
    2010 A Spain 84
    2010 A Berlin 42
    ... ... ... ...

    获取所有类型 A(或任何其他类型)的城市并绘制年份:

    df[df.Type == 'A'][['Year', 'City', 'Value']]
    

    获取所有城市,无论其类型如何:

    df[['Year', 'City', 'Value']]
    

    【讨论】:

    • 嘿,抱歉拖了这么久。那将需要有很多重复的条目,不是吗?每个城市 4 行。
    • 嗨罗德里戈,我认为我们无法避免不得不将信息存储在某个地方。如果一个城市可以有多种类型,那么我认为这是一种存储它以进行简单(就编码而言)检索的好方法。但是如果一个城市只能有 1 种类型,例如伦敦只能是 A 类型,那么将表非规范化为 2 会节省一些磁盘空间:一个用于 ['Year', 'City', 'Value'],另一个用于['城市','类型']。第二个 ['City', 'Type'] 可以是 python dict 而不是 table。但是检索代码将不得不调用并从字典中读取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2011-01-29
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多