我正在使用spark-csv将数据加载到DataFrame中。 我想做一个简单的查询并显示内容: val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("my.csv") df.registerTempTable("tasks") results = sqlContext.sql("select col from tasks"); results.show() col似乎被截断了: scala> results.show(); +——————–+ | col| +——————–+ |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-16 07:15:…| |2015-11-06 07:15:…| |2015-11-16 […]
我只是从R开始,遇到了一个奇怪的行为:当在一个空的数据框中插入第一行时,原来的列名会丢失。 例: a<-data.frame(one = numeric(0), two = numeric(0)) a #[1] one two #<0 rows> (or 0-length row.names) names(a) #[1] "one" "two" a<-rbind(a, c(5,6)) a # X5 X6 #1 5 6 names(a) #[1] "X5" "X6" 正如你所看到的,列名称1和2被X5和X6取代。 有人可以告诉我为什么发生这种情况,有没有一个正确的方法来做到这一点,而不会丢失列名? 猎枪解决scheme将保存在一个辅助向量中的名称,然后在dataframe上完成工作后将其添加回来。 谢谢 语境: 我创build了一个收集一些数据的函数,并将它们作为一个新行添加到作为参数接收的dataframe中。 我创build数据框,遍历数据源,将data.frame传递给每个函数调用以填充其结果。
我想从一行数据框中创build一个向量。 但我不想排名和列名。 我尝试了几件事情,但没有运气。 这是我的数据框架: > df <- data.frame(a=c(1,2,4,2),b=c(2,6,2,1),c=c(2.6,8.2,7.5,3)) > df abc 1 1 2 2.6 2 2 6 8.2 3 4 2 7.5 4 2 1 3.0 我试过了: > newV <- as.vector(df[1,]) > newV abc 1 1 2 2.6 但我真的很想看到这样的东西: > newV <- c( 1,2,2.6) > newV [1] 1.0 2.0 2.6 任何帮助,非常感谢。
将一行添加到pandas.DataFrame对象的简单任务似乎很难完成。 有3个与此相关的stackoverflow问题,没有一个给出了一个工作的答案。 这是我想要做的。 我有一个DataFrame我已经知道的形状以及行和列的名称。 >>> df = pandas.DataFrame(columns=['a','b','c','d'], index=['x','y','z']) >>> df abcd x NaN NaN NaN NaN y NaN NaN NaN NaN z NaN NaN NaN NaN 现在,我有一个函数来迭代计算行的值。 我怎样才能用字典或pandas.Series来填充其中pandas.Series呢? 以下是各种失败的尝试: >>> y = {'a':1, 'b':5, 'c':2, 'd':3} >>> df['y'] = y AssertionError: Length of values does not match length of index 显然它试图添加一列而不是一行。 >>> y = […]
如何以编程方式检索pandas数据框中的列数? 我希望有这样的东西: df.num_columns
在R中,当您需要根据列的名称检索列索引时,您可以执行此操作 idx <- which(names(my_data)==my_colum_name) 有没有办法与pandas数据框一样?
我很困惑如何定义python轴,以及它们是否引用DataFrame的行或列。 考虑下面的代码: >>> df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["col1", "col2", "col3", "col4"]) >>> df col1 col2 col3 col4 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 所以如果我们调用df.mean(axis=1) ,我们将在行之间得到一个平均值: >>> df.mean(axis=1) 0 1 1 2 2 3 但是,如果我们调用df.drop(name, axis=1) ,我们实际上删除了一列而不是一行: […]
我试过了: x=pandas.DataFrame(…) s = x.take([0], axis=1) 和s得到一个DataFrame,而不是一个系列。
我已经开始在Spark 1.4.0中使用Spark SQL和DataFrame。 我想要在Scala中的DataFrames上定义一个自定义分区,但没有看到如何做到这一点。 我正在处理的其中一个数据表包含一个交易清单,按照以下示例,帐户silimar。 Account Date Type Amount 1001 2014-04-01 Purchase 100.00 1001 2014-04-01 Purchase 50.00 1001 2014-04-05 Purchase 70.00 1001 2014-04-01 Payment -150.00 1002 2014-04-01 Purchase 80.00 1002 2014-04-02 Purchase 22.00 1002 2014-04-04 Payment -120.00 1002 2014-04-04 Purchase 60.00 1003 2014-04-02 Purchase 210.00 1003 2014-04-03 Purchase 15.00 至less在最初,大部分计算将发生在账户内的交易之间。 所以我想分区的数据,以便一个帐户的所有交易在同一个Spark分区。 但我没有看到一个方法来定义这个。 DataFrame类有一个名为“repartition(Int)”的方法,您可以在其中指定要创build的分区数。 但是我没有看到任何可用于为DataFrame定义定制分区的方法,例如可以为RDD指定的方法。 源数据存储在Parquet中。 […]
这可能是一个简单的问题,但我不知道如何做到这一点。 可以说,我有两个variables如下。 a = 2 b = 3 我想从这个构造一个DataFrame: df2 = pd.DataFrame({'A':a,'B':b}) 这会产生一个错误: ValueError:如果使用所有标量值,则必须传递一个索引 我也试过这个: df2 = (pd.DataFrame({'a':a,'b':b})).reset_index() 这给出了相同的错误信息。