【问题标题】:How can I only return the first product when using pd.multiIndex.from_product()? Or a better option使用 pd.multiIndex.from_product() 时如何只返回第一个产品?或者更好的选择
【发布时间】:2018-07-03 02:38:06
【问题描述】:

我正在使用下面的代码为数据框创建新索引。

pd.DataFrame(pd.MultiIndex.from_product([df['Key'],pd.date_range(start='20160101', end='20160301',freq='MS')],names=['key','year_month']))

这是当前的输出:

0 (A, 2016-01-01 00:00:00) 1 (A, 2016-02-01 00:00:00) 2 (A, 2016-03-01 00:00:00) 3 (A, 2016-01-01 00:00:00) 4 (A, 2016-02-01 00:00:00) 5 (A, 2016-03-01 00:00:00) 6 (A, 2016-01-01 00:00:00) 7 (A, 2016-02-01 00:00:00) 8 (A, 2016-03-01 00:00:00) 9 (B, 2016-01-01 00:00:00) 10 (B, 2016-02-01 00:00:00) 11 (B, 2016-03-01 00:00:00) 12 (B, 2016-01-01 00:00:00) 13 (B, 2016-02-01 00:00:00) 14 (B, 2016-03-01 00:00:00) 15 (B, 2016-01-01 00:00:00) 16 (B, 2016-02-01 00:00:00) 17 (B, 2016-03-01 00:00:00)

如何更改此代码以便仅退回第一个产品? from_product 是否有单独的功能或选项?

期望的输出:

0 (A, 2016-01-01 00:00:00) 1 (A, 2016-02-01 00:00:00) 2 (A, 2016-03-01 00:00:00) 3 (B, 2016-01-01 00:00:00) 4 (B, 2016-02-01 00:00:00) 5 (B, 2016-03-01 00:00:00)

【问题讨论】:

    标签: python pandas dataframe multi-index


    【解决方案1】:

    尝试使用unique

    pd.DataFrame(pd.MultiIndex.from_product([df['Key'].unique(),pd.date_range(start='20160101', end='20160301',freq='MS')],names=['key','year_month']))
    

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      相关资源
      最近更新 更多