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

有没有办法只复制Pandas DataFrame的结构(而不​​是数据)?

贲骏喆
2023-03-14
问题内容

我从某个地方收到一个DataFrame,并想创建另一个具有相同编号和名称的列和行(索引)的DataFrame。例如,假设原始数据帧创建为

import pandas as pd
df1 = pd.DataFrame([[11,12],[21,22]], columns=['c1','c2'], index=['i1','i2'])

我通过显式定义列和名称来复制结构:

df2 = pd.DataFrame(columns=df1.columns, index=df1.index)

我不想复制数据,否则我可以只写df2 = df1.copy()。换句话说,在创建df2之后,它必须仅包含NaN元素:

In [1]: df1
Out[1]: 
    c1  c2
i1  11  12
i2  21  22

In [2]: df2
Out[2]: 
     c1   c2
i1  NaN  NaN
i2  NaN  NaN

有没有更惯用的方法呢?


问题答案:

那是工作reindex_like。从原始的开始:

df1 = pd.DataFrame([[11, 12], [21, 22]], columns=['c1', 'c2'], index=['i1', 'i2'])

构造一个空的DataFrame并像df1一样重新索引它:

pd.DataFrame().reindex_like(df1)
Out: 
    c1  c2
i1 NaN NaN
i2 NaN NaN


 类似资料:
  • 我正在构建一个Webtools,其中包含画布内的两个部分: 第一部分用于选择路径 我使用paper.js画布内的所有功能。我为不同的部分制作了两层,并通过跟踪鼠标位置在它们之间切换。 现在,我想在第一部分上实现缩放。我在纸上看到那个视图对象。js具有缩放功能。在google上搜索后,我找到了这个https://gist.github.com/ryascl/4c1fd9e2d5d0030ba429简

  • 我正试图在表格上做错误检查。我想看看一个电话号码是否有效,看它是否包含所有号码。有没有办法确定一个字符串中是否只有NMBER?

  • 我已经看到,这在其他类型的对话框窗口中是可能的,如“ShowConfirmDialog”,其中可以指定按钮的数量和它们的名称;但是在使用“ShowInputDialog”时是否可以实现相同的功能?我似乎在API中找不到这种类型的东西。也许我只是错过了,但任何帮助都很感激。

  • 问题内容: 内容: 我想说的是: 问题答案: 一种方法是手动处理此问题: 使用包装(扩展) 只要设置了值,就保留()线程和值 或者,通过一些反射(和),您可以: 呼叫 调用(针对上述每个线程) 呼叫 第一是更优选的。

  • 问题内容: 我正在尝试使用具有不连续x轴的pyplot创建一个图。通常的绘制方法是轴将具有以下内容: (值)---- // ----(后值) // //表示您正在跳过(值)和(后值)之间的所有内容。 我还没有找到任何这样的例子,所以我想知道是否有可能。我知道您可以在不连续的情况下加入数据,例如财务数据,但我想使轴上的跳跃更明确。目前,我只是在使用子图,但我真的很希望最终所有内容都在同一张图上。 问

  • 我希望从C中的浮点数组中计算中值: FloatArray包含一个常规的C浮点数组。 我正在使用,但想知道是否有像这样的工具可以处理数据?现在,我正在制作一个副本,然后在扔掉副本之前执行。如果数据没有像这样的东西,是否有更有效的方法使用复制步骤来计算信息,从而避免潜在的额外O(n)循环?也许性能影响可以忽略不计?我的数组大小可能在20亿量级。

  • 问题内容: 我试图找到一种方法来查找数据库中的表的名称(如果存在)。我发现从sqlite cli我可以使用: 然后对于字段: 这显然在python中不起作用。有没有办法用python做到这一点,还是我应该只使用sqlite命令行? 问题答案: 您应该能够从表中访问表名称。 列名不能直接访问。获取它们的最简单方法是查询表并从查询结果中获取列名。

  • 问题内容: 我想知道是否有办法限制cassandra java驱动程序同时执行的查询数量? 当前,我执行许多查询,如下所示: 不幸的是,这可能导致NoHostAvailableException。 谢谢。 问题答案: 您可以使用信号量来限制并发查询的数量: 但是到最后,情况并没有太大的不同:信号量将阻塞(如果使用定时版本的Acquisition,则抛出该信号),而不是在超出容量时得到信号。因此,您