【问题标题】:How to add a Series to a Hierarchical Series如何将系列添加到分层系列
【发布时间】:2013-01-26 07:56:53
【问题描述】:

我有一个Hierarchical Series,如下所示

data=pd.Series(np.random.randn(10),
    index=[['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'd', 'd'],
    [1, 3, 4, 1, 2, 3, 1, 2, 2, 3]])

我想在data 中插入一个新系列

t_series = pd.Series(np.random.randn(10))

我试过了

data['e'] = t_series 

但是失败了,有大神能告诉我如何动态放大Hierarchical Series吗?

【问题讨论】:

  • 您能解释一下您希望生成的系列是什么样子的吗?
  • 它将有一个名为'e'的附加一级索引,调用data['e']将给出t_series的内容
  • OK,不过还需要指定二级索引。

标签: python pandas series hierarchical


【解决方案1】:

将其设为DataFrame

df = pd.DataFrame(data)

df['e'] = np.random.randn(10)
# or if you already created another series, which perhaps has a different index
df['e'] = t_series.values()

正如docs 注意:Series 是一个 一维 标记的数组,而 DataFrame 是一个 二维 标记的数组具有可能不同类型的列的数据结构。

【讨论】:

  • 我的第二级系列没有相同的索引,所以data['a']data['e']没有相同的索引。在那种情况下,我想我不能使用 DataFrame?
  • 有理由不使用相同的索引吗?您可以使用t_series.values() 强制它。
  • 嗨,在我原来的问题中,data['e'] 尚不存在,所以基本上我试图将一个系列分配给第一级索引,就像一个 python 字典。不确定这是否可能。
【解决方案2】:

如果您只是希望您的二级索引为range(10),您可能需要这样做:

t_series = pd.Series(np.random.randn(10), index=[('e ' * 10).split(), range(10)])
t_series

然后使用concat:

pd.concat([data, t_series])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2013-04-19
    • 1970-01-01
    • 2012-10-31
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多