【问题标题】:How do you append a set of Series with duplicate label names (index) to the end of a DataFrame as rows?如何将一组具有重复标签名称(索引)的系列作为行附加到 DataFrame 的末尾?
【发布时间】:2022-06-11 00:27:16
【问题描述】:

我需要将熊猫系列作为一行附加到熊猫数据框的末尾。让这件事变得棘手的是我使用日期作为我的索引,这不是唯一的。这就是我希望以“date”为索引的结果。

+───────────+─────────+──────────────+──────────+────────+
|           | counts  | day of week  | weekend  | month  |
+───────────+─────────+──────────────+──────────+────────+
| 8/5/2015  | 1111    | 2            | FALSE    | 8      |
| 8/5/2015  | 1076    | 3            | FALSE    | 8      |
| 8/5/2015  | 1060    | 4            | FALSE    | 8      |
| 8/6/2015  | 1540    | 5            | TRUE     | 8      |
| 8/7/2015  | 1493    | 6            | TRUE     | 8      |
| 8/7/2015  | 1060    | 0            | FALSE    | 8      |
| 8/7/2015  | 1113    | 1            | FALSE    | 8      |
| 8/8/2015  | 1027    | 2            | FALSE    | 8      |
| 8/8/2015  | 1053    | 3            | FALSE    | 8      |
| 8/8/2015  | 1051    | 4            | FALSE    | 8      |
| 8/8/2015  | 1278    | 5            | TRUE     | 8      |
| 8/8/2015  | 1086    | 6            | TRUE     | 8      |
+───────────+─────────+──────────────+──────────+────────+

虽然使用 append 方法很容易做到这一点,但它已被弃用,我不确定 concat 是否可以复制其所有功能。 (顺便说一句,为什么 pandas 团队一直在弃用强大的功能?)。

【问题讨论】:

    标签: python pandas dataframe series


    【解决方案1】:

    我的解决方案涉及 loc 方法:

    df.loc[len(df)] = series_row
    
    df= df.rename(index={label_name: series_row.name})
    

    如果您不关注,我们会在数据框的末尾插入一个新行。如果我们停在那里,标签名称将是一个 int 值,特别是 Dataframe 的大小。为了保持 append 方法的功能,我们需要将标签重命名为我们想要的任何名称,在本例中是日期字符串。

    【讨论】:

      猜你喜欢
      • 2015-04-11
      • 2017-05-21
      • 2019-07-27
      • 2019-09-26
      • 1970-01-01
      • 2019-05-24
      • 2013-05-12
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多