小编Zel*_*ny7的帖子

Pandas read_csv在具有空字符的列上失败

下面的列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)

python pandas

6
推荐指数
1
解决办法
2411
查看次数

子集按列位置dask数据帧

一旦我有一个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但是在一个不是很大的文件上它很慢.我希望我遗漏一些非常明显的东西.

python pandas dask

6
推荐指数
1
解决办法
2643
查看次数

有条件地设置DataFrame的非空值

我有一个数据帧:

     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)

python pandas

5
推荐指数
1
解决办法
2293
查看次数

如何解决HDFStore异常问题:无法找到正确的原子类型

我正在寻找关于什么类型的数据场景可能导致此异常的一般指导.我试过以各种方式按摩我的数据无济于事.

我已经搜索了这个例外几天了,经历了几次谷歌小组讨论,并没有提出调试的解决方案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)

python hdf5 pandas

5
推荐指数
1
解决办法
4250
查看次数

是在PyTables中添加列以创建新表并进行复制的唯一方法吗?

我正在寻找可以处理磁盘上存储的异构数据的持久数据存储解决方案。PyTables似乎是一个显而易见的选择,但是关于如何添加新列的唯一信息是一个教程示例。本教程让用户使用添加的列创建新表,将旧表复制到新表中,最后删除旧表。这似乎是一个巨大的痛苦。这是必须要做的吗?

如果是这样,那么在磁盘上存储混合数据并可以相对轻松地容纳新列的更好的替代方法是什么?我也看过sqlite3,那里的列选项似乎也很有限。

python pytables

5
推荐指数
1
解决办法
1813
查看次数

展平具有复杂嵌套结构的列表

我有一个包含以下示例结构的列表:

> 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 list

5
推荐指数
1
解决办法
1408
查看次数

将新列添加到MonetDBLite表

我正在尝试使用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)

sql r monetdb monetdblite

5
推荐指数
1
解决办法
442
查看次数

如何使用Sqlite3用列表中的值更新整个列

我有一个本地存储在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)

python sqlite

2
推荐指数
1
解决办法
4499
查看次数

将对象传递到闪亮的应用程序并使用runApp启动

我正在创建一个包含一些交互式闪亮应用程序的程序包。这些应用程序的目的是促进对内存中对象的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?

当我执行上面的代码时,我收到以下错误: …

scope r shiny

2
推荐指数
1
解决办法
682
查看次数

对数据列表中的多个列执行操作

假设我在列表中有以下数据框:

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对列表中的多个列执行操作?

r list lapply

1
推荐指数
1
解决办法
696
查看次数

标签 统计

python ×6

pandas ×4

r ×4

list ×2

dask ×1

hdf5 ×1

lapply ×1

monetdb ×1

monetdblite ×1

pytables ×1

scope ×1

shiny ×1

sql ×1

sqlite ×1