如何旋转数据框?

2023-11-22

  • 什么是枢轴?
  • 我该如何旋转?
  • 长格式到宽格式?

我见过很多关于数据透视表的问题,即使他们不知道。写一个几乎是不可能的规范问答这涵盖了旋转的所有方面......但我要尝试一下。


现有问题和答案的问题在于,问题通常集中在OP难以概括的细微差别上,以便使用许多现有的好的答案。然而,没有一个答案试图给出全面的解释(因为这是一项艰巨的任务)。看看我的几个例子谷歌搜索:

  1. 如何在 Pandas 中旋转数据框?- 很好的问题和答案。但答案只回答了具体问题,几乎没有解释。
  2. pandas 数据透视表到数据框- OP 关注主元的输出,即列的外观。 OP 希望它看起来像 R。这对于 pandas 用户来说不是很有帮助。
  3. pandas 旋转数据框,重复行- 另一个不错的问题,但答案集中在一种方法上,即pd.DataFrame.pivot

Setup

我明确地命名了我的列和相关列值,以与我将如何在下面的答案中进行调整相对应。

import numpy as np
import pandas as pd
from numpy.core.defchararray import add

np.random.seed([3,1415])
n = 20

cols = np.array(['key', 'row', 'item', 'col'])
arr1 = (np.random.randint(5, size=(n, 4)) // [2, 1, 2, 1]).astype(str)

df = pd.DataFrame(
    add(cols, arr1), columns=cols
).join(
    pd.DataFrame(np.random.rand(n, 2).round(2)).add_prefix('val')
)
print(df)
     key   row   item   col  val0  val1
0   key0  row3  item1  col3  0.81  0.04
1   key1  row2  item1  col2  0.44  0.07
2   key1  row0  item1  col0  0.77  0.01
3   key0  row4  item0  col2  0.15  0.59
4   key1  row0  item2  col1  0.81  0.64
5   key1  row2  item2  col4  0.13  0.88
6   key2  row4  item1  col3  0.88  0.39
7   key1  row4  item1  col1  0.10  0.07
8   key1  row0  item2  col4  0.65  0.02
9   key1  row2  item0  col2  0.35  0.61
10  key2  row0  item2  col1  0.40  0.85
11  key2  row4  item1  col2  0.64  0.25
12  key0  row2  item2  col3  0.50  0.44
13  key0  row4  item1  col4  0.24  0.46
14  key1  row3  item2  col3  0.28  0.11
15  key0  row3  item1  col1  0.31  0.23
16  key0  row0  item2  col3  0.86  0.01
17  key0  row4  item0  col3  0.64  0.21
18  key2  row2  item2  col0  0.13  0.45
19  key0  row2  item0  col4  0.37  0.70

问题

  1. 为什么我得到ValueError: Index contains duplicate entries, cannot reshape?

  2. 我如何旋转df使得col值是列,row值是索引和平均值val0价值观是什么?

    col   col0   col1   col2   col3  col4
    row
    row0  0.77  0.605    NaN  0.860  0.65
    row2  0.13    NaN  0.395  0.500  0.25
    row3   NaN  0.310    NaN  0.545   NaN
    row4   NaN  0.100  0.395  0.760  0.24
    
  3. 我该如何做到这一点,以便缺失值0?

    col   col0   col1   col2   col3  col4
    row
    row0  0.77  0.605  0.000  0.860  0.65
    row2  0.13  0.000  0.395  0.500  0.25
    row3  0.00  0.310  0.000  0.545  0.00
    row4  0.00  0.100  0.395  0.760  0.24
    
  4. 除了mean,就像也许sum?

    col   col0  col1  col2  col3  col4
    row
    row0  0.77  1.21  0.00  0.86  0.65
    row2  0.13  0.00  0.79  0.50  0.50
    row3  0.00  0.31  0.00  1.09  0.00
    row4  0.00  0.10  0.79  1.52  0.24
    
  5. 我可以一次进行多个聚合吗?

           sum                          mean
    col   col0  col1  col2  col3  col4  col0   col1   col2   col3  col4
    row
    row0  0.77  1.21  0.00  0.86  0.65  0.77  0.605  0.000  0.860  0.65
    row2  0.13  0.00  0.79  0.50  0.50  0.13  0.000  0.395  0.500  0.25
    row3  0.00  0.31  0.00  1.09  0.00  0.00  0.310  0.000  0.545  0.00
    row4  0.00  0.10  0.79  1.52  0.24  0.00  0.100  0.395  0.760  0.24
    
  6. 我可以聚合多个值列吗?

          val0                             val1
    col   col0   col1   col2   col3  col4  col0   col1  col2   col3  col4
    row
    row0  0.77  0.605  0.000  0.860  0.65  0.01  0.745  0.00  0.010  0.02
    row2  0.13  0.000  0.395  0.500  0.25  0.45  0.000  0.34  0.440  0.79
    row3  0.00  0.310  0.000  0.545  0.00  0.00  0.230  0.00  0.075  0.00
    row4  0.00  0.100  0.395  0.760  0.24  0.00  0.070  0.42  0.300  0.46
    
  7. 我可以细分多列吗?

    item item0             item1                         item2
    col   col2  col3  col4  col0  col1  col2  col3  col4  col0   col1  col3  col4
    row
    row0  0.00  0.00  0.00  0.77  0.00  0.00  0.00  0.00  0.00  0.605  0.86  0.65
    row2  0.35  0.00  0.37  0.00  0.00  0.44  0.00  0.00  0.13  0.000  0.50  0.13
    row3  0.00  0.00  0.00  0.00  0.31  0.00  0.81  0.00  0.00  0.000  0.28  0.00
    row4  0.15  0.64  0.00  0.00  0.10  0.64  0.88  0.24  0.00  0.000  0.00  0.00
    
  8. Or

    item      item0             item1                         item2
    col        col2  col3  col4  col0  col1  col2  col3  col4  col0  col1  col3  col4
    key  row
    key0 row0  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.86  0.00
         row2  0.00  0.00  0.37  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.50  0.00
         row3  0.00  0.00  0.00  0.00  0.31  0.00  0.81  0.00  0.00  0.00  0.00  0.00
         row4  0.15  0.64  0.00  0.00  0.00  0.00  0.00  0.24  0.00  0.00  0.00  0.00
    key1 row0  0.00  0.00  0.00  0.77  0.00  0.00  0.00  0.00  0.00  0.81  0.00  0.65
         row2  0.35  0.00  0.00  0.00  0.00  0.44  0.00  0.00  0.00  0.00  0.00  0.13
         row3  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.28  0.00
         row4  0.00  0.00  0.00  0.00  0.10  0.00  0.00  0.00  0.00  0.00  0.00  0.00
    key2 row0  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.40  0.00  0.00
         row2  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.13  0.00  0.00  0.00
         row4  0.00  0.00  0.00  0.00  0.00  0.64  0.88  0.00  0.00  0.00  0.00  0.00
    
  9. 我可以聚合列和行一起出现的频率,也称为“交叉制表”吗?

    col   col0  col1  col2  col3  col4
    row
    row0     1     2     0     1     1
    row2     1     0     2     1     2
    row3     0     1     0     2     0
    row4     0     1     2     2     1
    
  10. 如何通过仅旋转两列将 DataFrame 从长转换为宽?鉴于,

    np.random.seed([3, 1415])
    df2 = pd.DataFrame({'A': list('aaaabbbc'), 'B': np.random.choice(15, 8)})
    df2
       A   B
    0  a   0
    1  a  11
    2  a   2
    3  a  11
    4  b  10
    5  b  10
    6  b  14
    7  c   7
    

    预期的应该看起来像

          a     b    c
    0   0.0  10.0  7.0
    1  11.0  10.0  NaN
    2   2.0  14.0  NaN
    3  11.0   NaN  NaN
    
  11. 之后如何将多个索引展平为单个索引pivot?

    From

       1  2
       1  1  2
    a  2  1  1
    b  2  1  0
    c  1  0  0
    

    To

       1|1  2|1  2|2
    a    2    1    1
    b    2    1    0
    c    1    0    0
    

这是我们可以用来进行透视的习语列表

  1. pd.DataFrame.pivot_table

    • 一个美化版本groupby具有更直观的 API。对于许多人来说,这是首选方法。这是开发人员的预期方法。
    • 指定行级别、列级别、要聚合的值以及执行聚合的函数。
  2. pd.DataFrame.groupby + pd.DataFrame.unstack

    • 适用于任何类型的枢轴的良好通用方法
    • 您指定将构成一组依据中的透视行级别和列级别的所有列。接下来,您可以选择要聚合的其余列以及要执行聚合的函数。最后,你unstack您希望在列索引中的级别。
  3. pd.DataFrame.set_index + pd.DataFrame.unstack

    • 对于某些人(包括我自己)来说方便且直观。无法处理重复的分组键。
    • 类似于groupby范例中,我们指定最终将成为行或列级别的所有列,并将它们设置为索引。然后我们unstack我们想要在列中显示的级别。如果剩余的索引级别或列级别不唯一,则此方法将失败。
  4. pd.DataFrame.pivot

    • 非常类似于set_index因为它有重复键的限制。 API 也非常有限。它只需要标量值index, columns, values.
    • 类似于pivot_table方法,我们选择要旋转的行、列和值。但是,我们无法聚合,如果行或列不唯一,则此方法将失败。
  5. pd.crosstab

    • 这是一个专门版本pivot_table最纯粹的形式是执行多项任务的最直观的方式。
  6. pd.factorize + np.bincount

    • 这是一项非常先进的技术,虽然非常晦涩,但速度非常快。它不可能在所有情况下都使用,但是当它可以使用并且您可以轻松使用它时,您将获得性能奖励。
  7. pd.get_dummies + pd.DataFrame.dot

    • 我用它来巧妙地执行交叉制表。

也可以看看:

  • 重塑和数据透视表— pandas 用户指南

问题1

为什么我得到ValueError: Index contains duplicate entries, cannot reshape

发生这种情况是因为 pandas 试图重新索引columns or index具有重复条目的对象。有多种方法可以用来执行枢转。其中一些不太适合当要求旋转的键重复时。例如:考虑pd.DataFrame.pivot。我知道有重复的条目共享row and col values:

df.duplicated(['row', 'col']).any()

True

所以当我pivot using

df.pivot(index='row', columns='col', values='val0')

我收到上面提到的错误。事实上,当我尝试使用以下命令执行相同的任务时,我遇到了相同的错误:

df.set_index(['row', 'col'])['val0'].unstack()

Examples

对于后续的每个问题,我要做的就是使用pd.DataFrame.pivot_table。然后我将提供执行相同任务的替代方案。

问题2和3

我如何旋转df使得col值是列,row值是索引和平均值val0价值观是什么?

  • pd.DataFrame.pivot_table

    df.pivot_table(
        values='val0', index='row', columns='col',
        aggfunc='mean')
    
    col   col0   col1   col2   col3  col4
    row                                  
    row0  0.77  0.605    NaN  0.860  0.65
    row2  0.13    NaN  0.395  0.500  0.25
    row3   NaN  0.310    NaN  0.545   NaN
    row4   NaN  0.100  0.395  0.760  0.24
    
    • aggfunc='mean'是默认值,我不需要设置它。我把它包括在内是为了明确。

怎样才能让缺失值变成0呢?

  • pd.DataFrame.pivot_table

    • fill_value默认情况下未设置。我倾向于适当地设置它。在本例中我将其设置为0.
    df.pivot_table(
        values='val0', index='row', columns='col',
        fill_value=0, aggfunc='mean')
    
    col   col0   col1   col2   col3  col4
    row
    row0  0.77  0.605  0.000  0.860  0.65
    row2  0.13  0.000  0.395  0.500  0.25
    row3  0.00  0.310  0.000  0.545  0.00
    row4  0.00  0.100  0.395  0.760  0.24
    
  • pd.DataFrame.groupby

    df.groupby(['row', 'col'])['val0'].mean().unstack(fill_value=0)
    
  • pd.crosstab

    pd.crosstab(
        index=df['row'], columns=df['col'],
        values=df['val0'], aggfunc='mean').fillna(0)
    

问题4

除了mean,就像也许sum?

  • pd.DataFrame.pivot_table

    df.pivot_table(
        values='val0', index='row', columns='col',
        fill_value=0, aggfunc='sum')
    
    col   col0  col1  col2  col3  col4
    row
    row0  0.77  1.21  0.00  0.86  0.65
    row2  0.13  0.00  0.79  0.50  0.50
    row3  0.00  0.31  0.00  1.09  0.00
    row4  0.00  0.10  0.79  1.52  0.24
    
  • pd.DataFrame.groupby

    df.groupby(['row', 'col'])['val0'].sum().unstack(fill_value=0)
    
  • pd.crosstab

    pd.crosstab(
        index=df['row'], columns=df['col'],
        values=df['val0'], aggfunc='sum').fillna(0)
    

问题5

我可以一次进行多个聚合吗?

请注意,对于pivot_table and crosstab我需要传递可调用列表。另一方面,groupby.agg能够将字符串用于有限数量的特殊函数。groupby.agg也会采用我们传递给其他人的相同可调用函数,但利用字符串函数名称通常更有效,因为可以提高效率。

  • pd.DataFrame.pivot_table

    df.pivot_table(
        values='val0', index='row', columns='col',
        fill_value=0, aggfunc=[np.size, np.mean])
    
         size                      mean
    col  col0 col1 col2 col3 col4  col0   col1   col2   col3  col4
    row
    row0    1    2    0    1    1  0.77  0.605  0.000  0.860  0.65
    row2    1    0    2    1    2  0.13  0.000  0.395  0.500  0.25
    row3    0    1    0    2    0  0.00  0.310  0.000  0.545  0.00
    row4    0    1    2    2    1  0.00  0.100  0.395  0.760  0.24
    
  • pd.DataFrame.groupby

    df.groupby(['row', 'col'])['val0'].agg(['size', 'mean']).unstack(fill_value=0)
    
  • pd.crosstab

    pd.crosstab(
        index=df['row'], columns=df['col'],
        values=df['val0'], aggfunc=[np.size, np.mean]).fillna(0, downcast='infer')
    

问题6

我可以聚合多个值列吗?

  • pd.DataFrame.pivot_table我们通过values=['val0', 'val1']但我们可以完全放弃它

    df.pivot_table(
        values=['val0', 'val1'], index='row', columns='col',
        fill_value=0, aggfunc='mean')
    
          val0                             val1
    col   col0   col1   col2   col3  col4  col0   col1  col2   col3  col4
    row
    row0  0.77  0.605  0.000  0.860  0.65  0.01  0.745  0.00  0.010  0.02
    row2  0.13  0.000  0.395  0.500  0.25  0.45  0.000  0.34  0.440  0.79
    row3  0.00  0.310  0.000  0.545  0.00  0.00  0.230  0.00  0.075  0.00
    row4  0.00  0.100  0.395  0.760  0.24  0.00  0.070  0.42  0.300  0.46
    
  • pd.DataFrame.groupby

    df.groupby(['row', 'col'])['val0', 'val1'].mean().unstack(fill_value=0)
    

问题7

我可以细分多列吗?

  • pd.DataFrame.pivot_table

    df.pivot_table(
        values='val0', index='row', columns=['item', 'col'],
        fill_value=0, aggfunc='mean')
    
    item item0             item1                         item2
    col   col2  col3  col4  col0  col1  col2  col3  col4  col0   col1  col3  col4
    row
    row0  0.00  0.00  0.00  0.77  0.00  0.00  0.00  0.00  0.00  0.605  0.86  0.65
    row2  0.35  0.00  0.37  0.00  0.00  0.44  0.00  0.00  0.13  0.000  0.50  0.13
    row3  0.00  0.00  0.00  0.00  0.31  0.00  0.81  0.00  0.00  0.000  0.28  0.00
    row4  0.15  0.64  0.00  0.00  0.10  0.64  0.88  0.24  0.00  0.000  0.00  0.00
    
  • pd.DataFrame.groupby

    df.groupby(
        ['row', 'item', 'col']
    )['val0'].mean().unstack(['item', 'col']).fillna(0).sort_index(1)
    

问题8

我可以细分多列吗?

  • pd.DataFrame.pivot_table

    df.pivot_table(
        values='val0', index=['key', 'row'], columns=['item', 'col'],
        fill_value=0, aggfunc='mean')
    
    item      item0             item1                         item2
    col        col2  col3  col4  col0  col1  col2  col3  col4  col0  col1  col3  col4
    key  row
    key0 row0  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.86  0.00
         row2  0.00  0.00  0.37  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.50  0.00
         row3  0.00  0.00  0.00  0.00  0.31  0.00  0.81  0.00  0.00  0.00  0.00  0.00
         row4  0.15  0.64  0.00  0.00  0.00  0.00  0.00  0.24  0.00  0.00  0.00  0.00
    key1 row0  0.00  0.00  0.00  0.77  0.00  0.00  0.00  0.00  0.00  0.81  0.00  0.65
         row2  0.35  0.00  0.00  0.00  0.00  0.44  0.00  0.00  0.00  0.00  0.00  0.13
         row3  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.28  0.00
         row4  0.00  0.00  0.00  0.00  0.10  0.00  0.00  0.00  0.00  0.00  0.00  0.00
    key2 row0  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.40  0.00  0.00
         row2  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.13  0.00  0.00  0.00
         row4  0.00  0.00  0.00  0.00  0.00  0.64  0.88  0.00  0.00  0.00  0.00  0.00
    
  • pd.DataFrame.groupby

    df.groupby(
        ['key', 'row', 'item', 'col']
    )['val0'].mean().unstack(['item', 'col']).fillna(0).sort_index(1)
    
  • pd.DataFrame.set_index因为该组键对于行和列都是唯一的

    df.set_index(
        ['key', 'row', 'item', 'col']
    )['val0'].unstack(['item', 'col']).fillna(0).sort_index(1)
    

问题9

我可以聚合列和行一起出现的频率,也称为“交叉制表”吗?

  • pd.DataFrame.pivot_table

    df.pivot_table(index='row', columns='col', fill_value=0, aggfunc='size')
    
    col   col0  col1  col2  col3  col4
    row
    row0     1     2     0     1     1
    row2     1     0     2     1     2
    row3     0     1     0     2     0
    row4     0     1     2     2     1
    
  • pd.DataFrame.groupby

    df.groupby(['row', 'col'])['val0'].size().unstack(fill_value=0)
    
  • pd.crosstab

    pd.crosstab(df['row'], df['col'])
    
  • pd.factorize + np.bincount

    # get integer factorization `i` and unique values `r`
    # for column `'row'`
    i, r = pd.factorize(df['row'].values)
    # get integer factorization `j` and unique values `c`
    # for column `'col'`
    j, c = pd.factorize(df['col'].values)
    # `n` will be the number of rows
    # `m` will be the number of columns
    n, m = r.size, c.size
    # `i * m + j` is a clever way of counting the
    # factorization bins assuming a flat array of length
    # `n * m`.  Which is why we subsequently reshape as `(n, m)`
    b = np.bincount(i * m + j, minlength=n * m).reshape(n, m)
    # BTW, whenever I read this, I think 'Bean, Rice, and Cheese'
    pd.DataFrame(b, r, c)
    
          col3  col2  col0  col1  col4
    row3     2     0     0     1     0
    row2     1     2     1     0     2
    row0     1     0     1     2     1
    row4     2     2     0     1     1
    
  • pd.get_dummies

    pd.get_dummies(df['row']).T.dot(pd.get_dummies(df['col']))
    
          col0  col1  col2  col3  col4
    row0     1     2     0     1     1
    row2     1     0     2     1     2
    row3     0     1     0     2     0
    row4     0     1     2     2     1
    

问题10

如何通过仅旋转两个数据帧将数据帧从长转换为宽 列?

  • DataFrame.pivot

    第一步是为每一行分配一个数字 - 该数字将是透视结果中该值的行索引。这是使用完成的GroupBy.cumcount:

    df2.insert(0, 'count', df2.groupby('A').cumcount())
    df2
    
       count  A   B
    0      0  a   0
    1      1  a  11
    2      2  a   2
    3      3  a  11
    4      0  b  10
    5      1  b  10
    6      2  b  14
    7      0  c   7
    

    第二步,使用新创建的列作为索引来调用DataFrame.pivot.

    df2.pivot(*df2)
    # df2.pivot(index='count', columns='A', values='B')
    
    A         a     b    c
    count
    0       0.0  10.0  7.0
    1      11.0  10.0  NaN
    2       2.0  14.0  NaN
    3      11.0   NaN  NaN
    
  • DataFrame.pivot_table

    Whereas DataFrame.pivot只接受列,DataFrame.pivot_table也接受数组,所以GroupBy.cumcount可以直接传递为index无需创建显式列。

    df2.pivot_table(index=df2.groupby('A').cumcount(), columns='A', values='B')
    
    A         a     b    c
    0       0.0  10.0  7.0
    1      11.0  10.0  NaN
    2       2.0  14.0  NaN
    3      11.0   NaN  NaN
    

问题11

之后如何将多个索引展平为单个索引pivot

If columns type object带绳子join

df.columns = df.columns.map('|'.join)

else format

df.columns = df.columns.map('{0[0]}|{0[1]}'.format)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何旋转数据框? 的相关文章

  • python blpapi安装错误

    我试图根据 README 中的说明为 python 安装 blpapi 3 5 5 但是在运行时 python setup py install 我收到以下错误 running install running build running b
  • 从 Django 基于类的视图的 form_valid 方法调用特殊(非 HTTP)URL

    如果你这样做的话 有一个 HTML 技巧 a href New SMS Message a 点击新短信打开手机的本机短信应用程序并预 先填写To包含所提供号码的字段 在本例中为 1 408 555 1212 以及body与提供的消息 Hel
  • 如何使用 python http.server 运行 CGI“hello world”

    我使用的是 Windows 7 和 Python 3 4 3 我想在浏览器中运行这个简单的 helloworld py 文件 print Content Type text html print print print print h2 H
  • 无法使用 Python 循环分页 API 响应

    所以 我对这个感到摸不着头脑 使用 HubSpot 的 API 我需要获取我客户的 门户 帐户 中所有公司的列表 遗憾的是 标准 API 调用一次只能返回 100 家公司 当它返回响应时 它包含两个参数 使分页响应成为可能 其中之一是 ha
  • 如何在seaborn中绘制离散变量的分布图

    当我画画的时候displot对于离散变量 分布可能不像我想象的那样 例如 We can find that there are crevices in the barplot so that the curve in kdeplot is
  • 将相同的 Patch 实例添加到 matplotlib 中的多个子图中

    我正在尝试将补丁的相同实例添加到 matplotlib 中的多个轴 这是最小的例子 import matplotlib pyplot as mpl plt import matplotlib patches as mpl patches f
  • 在Python中清理属于不同语言的文本

    我有一个文本集合 其中的句子要么完全是英语 印地语或马拉地语 每个句子附加的 id 为 0 1 2 分别代表文本的语言 无论任何语言的文本都可能有 HTML 标签 标点符号等 我可以使用下面的代码清理英语句子 import HTMLPars
  • 在 Python 中使用类作为命名空间是个好主意吗

    我正在将一堆相关的东西放入一个类中 主要目的是将它们组织到命名空间中 class Direction north 0 east 1 south 2 west 3 staticmethod def turn right d return tu
  • Python ElementTree 获取带有命名空间的属性

    我试图访问 XML 中的 def 所以在这个例子中我会得到Evolus Common PlainTextV2作为输出 我似乎无法弄清楚如何获取具有名称空间的属性 如果我想得到id它工作得很好 Python for content ns in
  • Python 在 64 位 vista 上获取 os.environ["ProgramFiles"] 的错误值

    Vista64 计算机上的 Python 2 4 3 环境中有以下2个变量 ProgramFiles C Program Files ProgramFiles x86 C Program Files x86 但是当我运行以下命令时 impo
  • Python:绘制甘特图的模块

    有没有一个好的Python绘图模块甘特图 http en wikipedia org wiki Gantt chart 我试过了开罗情节 http linil wordpress com 2008 09 16 cairoplot 11 但它
  • Python 中使用 globals() 的原因?

    Python 中有 globals 函数的原因是什么 它只返回全局变量的字典 这些变量已经是全局的 所以它们可以在任何地方使用 我只是出于好奇而问 试图学习Python def F global x x 1 def G print glob
  • telethon 库:如何通过电话号码添加用户

    我正在研究 Telegram 的 Telethon 库 它可以使用 Telegram API 充当 Telegram 客户端 重要提示 这是电报客户端 API https core telegram org telegram api 而不是
  • 使用 os.forkpty() 创建一个伪终端以 ssh 到远程服务器并与其通信

    我正在尝试编写一个 python 脚本 它可以 ssh 到远程服务器 并可以从 python 客户端执行 ls cd 等简单命令 但是 在成功 ssh 到服务器后 我无法读取伪终端的输出 任何人都可以在这里帮助我 以便我可以在服务器上执行一
  • 如何使用 Python 实现并行 gzip 压缩?

    使用python压缩大文件 https stackoverflow com questions 9518705 big file compression with python给出了一个很好的例子来说明如何使用例如bz2 纯粹用 Pytho
  • 获取 python 模块的 2 个独立实例

    我正在与以非 OO 方式编写的 python 2 x API 进行交互 它使用模块全局范围来处理一些内部状态驱动的东西 在它不再是单例的情况下需要它 并且修改原始代码 不是我们的 不是一个选择 如果不使用单独解释器的子进程运行 有什么方法可
  • 向结构化 numpy 数组添加字段

    将字段添加到结构化 numpy 数组的最简洁方法是什么 是否可以破坏性地完成 或者是否有必要创建一个新数组并复制现有字段 每个字段的内容是否连续存储在内存中 以便可以有效地完成此类复制 如果您使用 numpy 1 3 还有 numpy li
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • gnuplot:第 1 行:无效命令

    stackoverflow 上可爱的人们大家好 我正在尝试使用 gnuplot 绘制数据 我首先阅读表格并提取我想要的数据 我将此数据写入 dat 文件 截至目前 我只是尝试通过命令行绘制它 但会添加必要的代码以在 python 脚本工作后
  • 如何对每一行进行 value_counts 并创建一些列,其值是每个值的计数

    我得到一个数据框如下 df c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 r1 0 1 1 1 1 0 0 0 0 0 0 0 r2 1 2 2 2 2 1 1 1 1 0 0 0 r3 1 0 2 0 0

随机推荐

  • 如何检查列表中的两个数字是否相同

    我很好奇如何检查列表中的两个数字是否相同 例如 myList 1 7 9 3 1 2 8 在这种情况下 1 在 myList 中重复 我将如何编写一个程序来检查列表中的两个数字是否相同 重复 尝试使用循环 以便我能够理解 因为我还没有学习复
  • 在实体上显式加载多个引用/集合

    考虑以下实体模型 public class Parent public virtual FirstChild FirstChild get set public virtual SecondChild SecondChild get set
  • 如何在 PHP 中启用跨域 POST?

    我正在将 POST 数据从一个站点发送到另一个站点 这两个站点都是由我们开发的 问题是 如果从另一个域请求该页面 则 POST 变量不可用 即使我在本地测试 但指定完整的url POST数据也没有了 所以 这会起作用
  • MediaRecorder 启动错误代码

    我想录制没有声音并可能进行硬件加速的原始 h 264 视频 并稍后进行流式传输 所以我决定使用MediaRecorder 和插座hack用于流式传输 我有以下代码 final MediaRecorder recorder new Media
  • 计算 ArrayList 中单词的出现次数[重复]

    这个问题在这里已经有答案了 我有一个ArrayList具有重复条目的单词 我想计算并保存数据结构中每个单词的出现次数 我该怎么做 如果您没有大量的字符串列表 那么实现它的最短方法是使用Collections frequency方法 像这样
  • 为什么我的程序在内存不足时偶尔会出现段错误而不是抛出 std::bad_alloc?

    我有一个程序 它实现了几种启发式搜索算法和几个领域 旨在通过实验评估各种算法 该程序用C 编写 使用GNU工具链构建 并在64位Ubuntu系统上运行 当我进行实验时 我使用 bashulimit命令限制进程可以使用的虚拟内存量 以便我的测
  • 在 MySQL (InnoDB) 中查找最佳匹配行

    我有以下测试字符串engine mail key和一个看起来像这样的表 query engine engine pdf engine mail 我想找到最匹配的行 最佳匹配由字符串 行开头的最匹配字符指定 我已经构建了一个 RegExp 但
  • 对 Coq 导入感到困惑

    有人可以告诉我之间的区别吗 Require Name Require Import Name Import Name Require 加载外部库 通常来自标准库或user contribs 文件夹 Import 导入模块中的名称 例如 如果
  • 将命令的输出分配给变量(BASH)

    我需要将命令的输出分配给变量 我尝试的命令是 grep UUID fstab awk ext4 print 1 awk print substr 0 6 我尝试用这段代码来分配一个变量 UUID grep UUID fstab awk ex
  • 查找重复文件并删除它们

    我正在编写一个 Python 程序来查找并删除文件夹中的重复文件 我有 mp3 文件和一些其他文件的多个副本 我使用的是sh1算法 如何找到这些重复的文件并删除它们 最快的算法 与接受的答案相比 性能提高了 100 倍 真的 其他解决方案中
  • ARC 下指向 Objective-C 对象的 C 风格指针数组

    我有一个指向 Objective C 实例的 2D 指针数组 用于跟踪地图网格上的游戏对象 现在我正在将代码转换为 ARC Xcode 指出了错误 我知道指向对象的指针不允许作为结构成员 但这让我 几乎 措手不及 我了解 ARC 限制背后的
  • 使用 git 和子模块,什么是好的文件夹结构?

    我将 git 与子模块一起使用 并且我很难弄清楚如何组织我的文件 我使用 PHP 进行开发 并使用单元测试 所以现在 我对每个模块都使用这个组织 src tests 这似乎是一个绝妙的主意 但问题是 当我对项目执行 git submodul
  • 剧作家:从非输入元素上传文件不能使用page.setInputFiles?

    我正在通过 Playwright 上的非输入 HTML 标签上传文件 例如 您可以使用setInputFiles像这样 这有效 await page setInputFiles input type file headphone png 但
  • python中的排序列表

    如果我有一个字符串列表 例如 a143 txt a9 txt 如何按列表中的数字而不是字符串按升序对其进行排序 IE 我想 a9 txt 出现在之前 a143 txt since 9 lt 143 thanks 这就是所谓的 自然排序 从h
  • Owin 如何在 Application_EndRequest 阶段之后设置 Asp.Net 身份验证 cookie?

    作为测试 我使用 Visual Studio 2013 中的最新模板创建了一个新的 Asp Net MVC5 应用程序 我将以下方法添加到 Global asax cs protected void Application PreSendR
  • Azure TopicClient 线程安全吗?

    我一直在处理来自 TopicClient 的大量超时 我认为这可能与对象生存期和处置有关 我正在使用TopicClient班级来自Microsoft ServiceBus Messaging并阅读本文最佳实践指南 states 您不应该在发
  • MYSQL 查询 - 获取与帖子相关的最新评论

    我试图获取与我下载的每篇帖子相关的最新 1 或 2 条评论 有点像 Instagram 的做法 因为它们显示每篇帖子的最新 3 条评论 到目前为止 我正在获取帖子和点赞数 现在我需要做的就是弄清楚如何获取最新的评论 不太确定如何处理它 这就
  • 比较已释放的指针是否会调用 UB?

    这似乎是一种相当常见的模式 例如在 hexchat 中 可能无法编译 另请参阅插件文档 另请注意hexchat plugin get info一直没有被使用 所以为了简单起见我省略了它 static hexchat plugin ph st
  • 如何使用 jQuery 将 Windows 身份验证传递给 Web 服务?

    我使用 jQuery 调用 Net Web 服务 如下所示 var service url https example com myservice asmx ajax type GET url service url dataType xm
  • 如何旋转数据框?

    什么是枢轴 我该如何旋转 长格式到宽格式 我见过很多关于数据透视表的问题 即使他们不知道 写一个几乎是不可能的规范问答这涵盖了旋转的所有方面 但我要尝试一下 现有问题和答案的问题在于 问题通常集中在OP难以概括的细微差别上 以便使用许多现有