下面的列y应该是['Reg','Reg','Swp','Swp']
In [1]: pd.read_csv('/tmp/test3.csv')
Out[1]:
x,y
^@^@^@,Reg
^@^@^@,Reg
I,Swp
I,Swp
In [2]: ! cat /tmp/test3.csv
x y
0
1 NaN NaN
2 I Swp
3 I Swp
In [3]: f = open('/tmp/test3.csv', 'rb'); print(repr(f.read()))
'x,y\n \x00\x00\x00,Reg\n \x00\x00\x00,Reg\nI,Swp\nI,Swp\n'
Run Code Online (Sandbox Code Playgroud) 一旦我有一个dask数据帧,我如何有选择地将列拉入内存中的pandas DataFrame?假设我有一个N x M数据帧.如何创建一个N xm数据帧,其中m << M并且是任意的.
from sklearn.datasets import load_iris
import dask.dataframe as dd
d = load_iris()
df = pd.DataFrame(d.data)
ddf = dd.from_pandas(df, chunksize=100)
Run Code Online (Sandbox Code Playgroud)
in_memory = ddf.iloc[:,2:4].compute()
Run Code Online (Sandbox Code Playgroud)
ddf.map_partitions(lambda x: x.iloc[:,2:4]).compute()
Run Code Online (Sandbox Code Playgroud)
map_partitions但是在一个不是很大的文件上它很慢.我希望我遗漏一些非常明显的东西.
我有一个数据帧:
0 1 2 3 4 y
35 NaN NaN NaN NaN 0.342153 0
40 NaN 0.326323 NaN NaN NaN 0
43 NaN NaN 0.290126 NaN NaN 0
49 NaN 0.326323 NaN NaN NaN 0
50 NaN 0.391147 NaN NaN NaN 1
Run Code Online (Sandbox Code Playgroud)
并生成它的代码:
import pandas as pd
import numpy as np
nan = np.nan
df = pd.DataFrame(
{0L: {35: nan, 40: nan, 43: nan, 49: nan, 50: nan},
1L: {35: nan,
40: 0.32632316859446198,
43: nan,
49: 0.32632316859446198,
50: 0.39114724480578139},
2L: …Run Code Online (Sandbox Code Playgroud) 我正在寻找关于什么类型的数据场景可能导致此异常的一般指导.我试过以各种方式按摩我的数据无济于事.
我已经搜索了这个例外几天了,经历了几次谷歌小组讨论,并没有提出调试的解决方案HDFStore Exception: cannot find the correct atom type.我正在阅读混合数据类型的简单csv文件:
Int64Index: 401125 entries, 0 to 401124
Data columns:
SalesID 401125 non-null values
SalePrice 401125 non-null values
MachineID 401125 non-null values
ModelID 401125 non-null values
datasource 401125 non-null values
auctioneerID 380989 non-null values
YearMade 401125 non-null values
MachineHoursCurrentMeter 142765 non-null values
UsageBand 401125 non-null values
saledate 401125 non-null values
fiModelDesc 401125 non-null values
Enclosure_Type 401125 non-null values
...................................................
Stick_Length 401125 non-null values
Thumb 401125 non-null values
Pattern_Changer 401125 non-null values …Run Code Online (Sandbox Code Playgroud) 我正在寻找可以处理磁盘上存储的异构数据的持久数据存储解决方案。PyTables似乎是一个显而易见的选择,但是关于如何添加新列的唯一信息是一个教程示例。本教程让用户使用添加的列创建新表,将旧表复制到新表中,最后删除旧表。这似乎是一个巨大的痛苦。这是必须要做的吗?
如果是这样,那么在磁盘上存储混合数据并可以相对轻松地容纳新列的更好的替代方法是什么?我也看过sqlite3,那里的列选项似乎也很有限。
我有一个包含以下示例结构的列表:
> dput(test)
structure(list(id = 1, var1 = 2, var3 = 4, section1 = structure(list(
var1 = 1, var2 = 2, var3 = 3), .Names = c("var1", "var2",
"var3")), section2 = structure(list(row = structure(list(var1 = 1,
var2 = 2, var3 = 3), .Names = c("var1", "var2", "var3")),
row = structure(list(var1 = 4, var2 = 5, var3 = 6), .Names = c("var1",
"var2", "var3")), row = structure(list(var1 = 7, var2 = 8,
var3 = 9), .Names = c("var1", "var2", "var3"))), .Names …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用R + MonetDB作为大数据分析堆栈,但是在创建新列并使用我的分析数据填充它时遇到了问题.这是一个玩具示例:
library(MonetDBLite)
library(DBI)
data(mtcars)
db <- dbConnect(MonetDB.R::MonetDB(), embedded="./test.db")
# load mtcars into the database
dbWriteTable(conn=db, value = mtcars, name = "mtcars", overwrite=TRUE)
## Add a new column
dbSendQuery(db, "ALTER TABLE mtcars ADD v1 DOUBLE;")
## insert data into the new column
v1 <- mtcars["mpg"] * pi
dbSendQuery(db, "INSERT INTO mtcars (v1) VALUES (?)", bind.data=v1)
Run Code Online (Sandbox Code Playgroud)
并且错误消息:
Error in .local(conn, statement, ...) :
Unable to execute statement 'INSERT INTO mtcars (v1) VALUES ('c(65.9734457253857, 65.9734457253857, 71.6283125018473, 67.23008278...'.
Server says 'ERROR: 49.6371639267187, …Run Code Online (Sandbox Code Playgroud) 我有一个本地存储在sqlite3数据库中的数据集。我提取了一个列,执行了一些操作,现在想替换数据库列中的所有值。我怎样才能做到这一点?
列和列表的长度保证为相同的长度。我只想用新值更新表。有一种简单的方法可以一次完成所有操作吗?
使用python 2.7
编辑添加:
myList是由dtype'object'的numpy数组支持的熊猫系列。表列myCol是文本格式的。
In [1]: curr.execute('UPDATE test SET myCol= ?', myList)
---------------------------------------------------------------------------
ProgrammingError Traceback (most recent call last)
f:\python\<ipython-input-52-ea41c426502a> in <module>()
----> 1 curr.execute('UPDATE test SET myCol = ?', myList)
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 401125 supplied.
Run Code Online (Sandbox Code Playgroud) 我正在创建一个包含一些交互式闪亮应用程序的程序包。这些应用程序的目的是促进对内存中对象的GUI探索。例如,我有一个包含离散变量的对象,我想将其传递给闪亮的应用程序,然后通过GUI界面进行调整。
但是,尝试从Shiny App访问此内存对象时遇到麻烦。
以下是相关代码:
首先,我将shinyServer函数包装在另一个函数中。我的想法是让闪亮的服务器访问传递的对象。
#' @export
appServer <- function(bins) {
su <- summary(bins)
shinyServer(function(input, output) {
## values that should trigger updates when changed
values <- reactiveValues(summary=su, i=1, bins=bins)
# excluded rest of body for brevity ...
}
Run Code Online (Sandbox Code Playgroud)
在此函数中,我创建一个shinyApp对象并传入ui(在另一个文件中)和appServer上面定义的函数的结果。
makeApp <- function(bins) {
shiny::shinyApp(
ui = appUI,
server = appServer(bins))
}
Run Code Online (Sandbox Code Playgroud)
在此函数中调用了前面的函数,该函数包装了runApp对用户的调用并从用户那里接受了一个参数。
#' @export
adjust <- function(bins) {
## access data from the app?
app <- makeApp(bins)
shiny::runApp(app)
}
Run Code Online (Sandbox Code Playgroud)
如何将内存中的对象传递给从另一个包导入的ShinyApp?
当我执行上面的代码时,我收到以下错误: …
假设我在列表中有以下数据框:
df1 <- data.frame(x = runif(3), y = runif(3))
df2 <- data.frame(x = runif(3), y = runif(3))
df.list <- list(df1, df2)
Run Code Online (Sandbox Code Playgroud)
现在假设我想添加列x和y来获取列z我知道在数据帧中执行此操作,mutate就像这样简单:
dplyr::mutate(lapply(df.list, z = x + y))
Run Code Online (Sandbox Code Playgroud)
如何使用lapply对列表中的多个列执行操作?