当前位置: 首页 > 知识库问答 >
问题:

创建空数据.框架

景建业
2023-03-14

我正在尝试初始化一个没有任何行的Data.Frame。基本上,我希望为每个列指定数据类型并命名它们,但不因此创建任何行。

到目前为止,我所能做的最好的事情是:

df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"), 
                 File="", User="", stringsAsFactors=FALSE)
df <- df[-1,]

它创建了一个data.Frame,其中有一行包含我想要的所有数据类型和列名,但也创建了一个需要删除的无用行。

有没有更好的办法做到这一点?

共有3个答案

袁安志
2023-03-14

您可以在不指定列类型的情况下执行此操作

df = data.frame(matrix(vector(), 0, 3,
                dimnames=list(c(), c("Date", "File", "User"))),
                stringsAsFactors=F)
佴保臣
2023-03-14

如果您已经有一个存在的数据帧,假设df有您想要的列,那么您可以通过删除所有行来创建一个空的数据帧:

empty_df = df[FALSE,]

请注意,df仍然包含这些数据,但empty_df不包含这些数据。

我发现这个问题正在寻找如何创建一个带有空行的新实例,所以我认为它可能对某些人有帮助。

刘向阳
2023-03-14

只需用空向量初始化即可:

df <- data.frame(Date=as.Date(character()),
                 File=character(), 
                 User=character(), 
                 stringsAsFactors=FALSE) 

下面是另一个具有不同列类型的示例:

df <- data.frame(Doubles=double(),
                 Ints=integer(),
                 Factors=factor(),
                 Logicals=logical(),
                 Characters=character(),
                 stringsAsFactors=FALSE)

str(df)
> str(df)
'data.frame':   0 obs. of  5 variables:
 $ Doubles   : num 
 $ Ints      : int 
 $ Factors   : Factor w/ 0 levels: 
 $ Logicals  : logi 
 $ Characters: chr 

请注意。:

使用错误类型的空列初始化data.frame并不阻止进一步添加具有不同类型列的行。
此方法稍微安全一点,因为您从一开始就具有正确的列类型,因此如果代码依赖于某些列类型检查,则即使使用具有零行的data.frame也能工作。

 类似资料:
  • 问题内容: 我有一个具有多个列和行的数据框 df1 。简单的例子: 我想创建一个空的数据框 df2, 然后再添加带有计算结果的新列。 目前,我的代码如下所示: …添加两个新列: 有没有更好/更安全/更快的方法呢?是否可以创建一个空的数据帧df2并仅从df1复制索引? 问题答案: 这将创建一个没有列但只有一个索引的DataFrame,并且它将与df1中的索引相同。

  • 我有一个运行良好的动态数据帧,但是当没有数据添加到数据帧中时,我会得到一个错误。因此,我需要一个解决方案来创建一个只有列名的空数据帧。 现在我有这样的东西: PS:列名仍然出现在数据帧中是很重要的。 但当我这样使用它时,我得到的结果是: “空数据帧”部分不错!但是我仍然需要显示列,而不是索引。 编辑: 我发现了一件重要的事情:我正在使用Jinja2将此数据帧转换为PDF,因此我调用了一个方法,首先

  • 我想从我的Pandas数据帧列中创建一个唯一值的计数,然后将这些计数添加到原始数据帧中的新列。我尝试了一些不同的方法。我创建了一个熊猫系列,然后用value_counts方法计算计数。我试图将这些值合并回我的原始数据框,但我想要合并的键在索引(ix/loc)中。 我想退货,比如:

  • 问题内容: 创建给定大小的零填充熊猫数据框的最佳方法是什么? 我用过了: 有更好的方法吗? 问题答案: 您可以尝试以下方法:

  • 我确信这是一个简单的SQLContext问题,但我在Spark docs或Stackoverflow中找不到任何答案 我想从MySQL上的SQL查询创建一个Spark数据框 例如,我有一个复杂的MySQL查询,如 我想要一个带有X、Y和Z列的数据帧 我想出了如何将整个表加载到Spark中,然后可以将它们全部加载,然后在那里进行连接和选择。然而,这是非常低效的。我只想加载SQL查询生成的表。 这是我

  • 问题内容: 我终于从包含许多json对象的文件中获得了我需要的数据输出,但是当它在数据中循环时,我需要一些帮助将以下输出转换为单个数据帧。这是产生输出的代码,包括输出外观的示例: 原始数据: 运行上面的命令时,我将获得示例输出,我希望将其存储为3列的pandas数据框中。 因此,以下代码似乎更接近,因为如果我在列表中传递并转置df,它会给我一个时髦的df。关于如何正确调整此形状的任何想法吗? 数据