当前位置: 首页 > 面试题库 >

多次分组后如何将熊猫数据从索引移到列

袁英豪
2023-03-14
问题内容

我有以下熊猫数据框:

dfalph.head()

token    year    uses  books
  386   xanthos  1830    3     3
  387   xanthos  1840    1     1
  388   xanthos  1840    2     2
  389   xanthos  1868    2     2
  390   xanthos  1875    1     1

我用聚合重复行tokenyears像这样:

dfalph = dfalph[['token','year','uses','books']].groupby(['token', 'year']).agg([np.sum])
dfalph.columns = dfalph.columns.droplevel(1)
dfalph.head()

               uses  books
token    year       
xanthos  1830    3     3
         1840    3     3
         1867    2     2
         1868    2     2
         1875    1     1

我不想在索引中包含“令牌”和“年”字段,而是将它们返回到列中并具有整数索引。


问题答案:

方法1reset_index()

>>> g
              uses  books
               sum    sum
token   year             
xanthos 1830     3      3
        1840     3      3
        1868     2      2
        1875     1      1

[4 rows x 2 columns]
>>> g = g.reset_index()
>>> g
     token  year  uses  books
                   sum    sum
0  xanthos  1830     3      3
1  xanthos  1840     3      3
2  xanthos  1868     2      2
3  xanthos  1875     1      1

[4 rows x 4 columns]

方法2 :首先不要使用索引as_index=False

>>> g = dfalph[['token', 'year', 'uses', 'books']].groupby(['token', 'year'], as_index=False).sum()
>>> g
     token  year  uses  books
0  xanthos  1830     3      3
1  xanthos  1840     3      3
2  xanthos  1868     2      2
3  xanthos  1875     1      1

[4 rows x 4 columns]


 类似资料:
  • 问题内容: 我有一个带有列“ A”和“ B”的多索引数据框。 有没有一种方法可以通过在多索引的一列上进行过滤而不选择将索引重新设置为单列索引来选择行? 例如。 问题答案: 一种方法是使用Index方法: 在0.13,你就可以使用与参数: 注意:如果这是列MultiIndex而不是索引,则可以使用相同的技术:

  • 问题内容: 您是否知道如何以NumPy数组或python列表的形式获取DataFrame的索引或列? 问题答案: 要获取NumPy数组,应使用以下属性: 这样可以访问数据的存储方式,因此无需进行转换。 注意:此属性也可用于其他许多熊猫的对象。 要将索引作为列表获取,请致电: 同样,对于列。

  • 问题内容: 我有以下熊猫数据框: 我想将日期时间索引转换为数据框的列。我尝试过,但结果没有改变。任何想法? 问题答案: 需要分配输出或参数:

  • 问题内容: pandas groupby的默认行为是将group by列转换为index并将其从数据框的列列表中删除。例如,说我有一个包含这些列的dataFrame 如果我申请一个GROUPBY发言权列和这样 数据框不再在列列表中。它们将自动转换为结果数据帧的索引。 我的问题是如何对列执行groupby并将该列保留在数据框中? 问题答案:

  • 问题内容: 我有一个数据框,我从其中删除了一些行。结果,我得到一个数据框架,其中的索引是这样的:我想将其重置为。我该怎么做? 以下似乎有效: 以下内容不起作用: 问题答案: 是您要寻找的。如果您不希望将其另存为列,请执行以下操作: 如果您不想重新分配:

  • 问题内容: 我正在尝试采用一个数据框并将其转换为特定的json格式。 这是我的数据框示例: 这是我想转换成的json格式: 注意这是字典列表。我几乎在下面的代码中: 但是,该行还包含这样的索引: 请注意,这是一个字典,它还包含两次索引(在第一个字典中为索引,在第二个字典中为“ id”!对您有所帮助。 问题答案: 您可以使用