【问题标题】:Repeat Pandas dataframe row labels重复 Pandas 数据框行标签
【发布时间】:2015-08-31 08:58:30
【问题描述】:

有没有办法用 Pandas 数据框重复行标签?我使用 xlsxwriter 创建的 Excel 输出当前不会在更高级别重复分组。 感谢您的帮助。

我的 Excel 工作表现在的样子:

Country   State/Province    Population
US        Califonia         38,802,500
          Texas             26,956,958
          Florida           19,893,297
...
CAN       Alberta            3,645,257
          Manitoba           4,400,057

我希望输出具有重复的国家级标签,如下所示

Country      State/Province        Population
US           California            38,802,500
US           Texas                 26,956,958
US           Florida               19,893,297
...
CAN          Alberta                3,645,257
CAN          Manitoba               4,400,057

【问题讨论】:

  • 我对 Pandas 一无所知,无法回答您的问题。事后有一种方法可以在 Excel 中手动更正此问题:选择您的表格。单击查找并选择/转到特殊。选择空白并点击确定。键入等号和向上箭头,然后按 Enter。按 Control-Enter。按 Control-C。然后单击粘贴/选择性粘贴。选择值并点击确定。这些步骤选择空白单元格并用显示上述单元格值的公式填充它们。然后将公式的结果复制回工作簿中。
  • 您好,感谢您的帮助!另外,我刚刚注意到,如果我使用 DataFrame 对象的 to_csv 方法,则会重复行标签。我只是希望 to_excel 表现出相同的行为,因为我的报告包含许多工作表。
  • 我猜是因为你有一个多索引?在这种情况下,只需执行reset_index()
  • 谢谢@JohnE,你的建议很完美。

标签: python excel pandas


【解决方案1】:

您可以导入excel数据,然后向前填充相关列:

df = pd.read_excel('data.xlsx')
df.Country.ffill(inplace=True)
>>> df
  Country State/Province  Population
0      US      Califonia    38802500
1      US          Texas    26956958
2      US        Florida    19893297
3     CAN        Alberta     3645257
4     CAN       Manitoba     4400057

如果需要,您可以将索引设置为国家和州/省。

>>> df.set_index(['Country', 'State/Province']) 
                        Population
Country State/Province            
US      Califonia         38802500
        Texas             26956958
        Florida           19893297
CAN     Alberta            3645257
        Manitoba           4400057

然后可以通过df.reset_index() 检索原始DataFrame。

【讨论】:

    【解决方案2】:

    我不知道 pandas 是否可以做到,但是使用简单快速的 excel 宏将在几秒钟内完成您想要的操作

    【讨论】:

      【解决方案3】:

      随便用

      df --> 是你的透视数据框。

      使用下面的,问题就解决了 df = df.reset_index()

      【讨论】:

      猜你喜欢
      • 2016-07-03
      • 2021-04-22
      • 2021-10-15
      • 2021-04-05
      • 1970-01-01
      • 2021-12-06
      • 2023-03-15
      • 2021-12-09
      • 1970-01-01
      相关资源
      最近更新 更多