小编Uri*_*son的帖子

计算每组观察/行数,并将结果添加到数据框

说我有一个data.frame对象:

df <- data.frame(name=c('black','black','black','red','red'),
                 type=c('chair','chair','sofa','sofa','plate'),
                 num=c(4,5,12,4,3))
Run Code Online (Sandbox Code Playgroud)

现在我想计算每个组合的观察次数nametype.这可以这样做:

table(df[ , c("name","type")])
Run Code Online (Sandbox Code Playgroud)

或者也可能plyr,(虽然我不确定如何).

但是,如何将结果合并到原始数据框中?这样结果将如下所示:

df
#    name  type num count
# 1 black chair   4     2
# 2 black chair   5     2
# 3 black  sofa  12     1
# 4   red  sofa   4     1
# 5   red plate   3     1
Run Code Online (Sandbox Code Playgroud)

这里count现在存储从聚集的结果.

一个解决方案plyr也可能很有趣,但我希望看到这是如何用基础R完成的.

aggregate r count r-faq

46
推荐指数
4
解决办法
9万
查看次数

如何在numpy中创建字符数组?

说我有以下数组:

import numpy as np
a = ['hello','snake','plate']
Run Code Online (Sandbox Code Playgroud)

我希望它变成一个numpy数组,b以便:

b[0,0] = 'h'
b[0,1] = 'e'
b[0,2] = 'l'
b[1,0] = 's'
...
Run Code Online (Sandbox Code Playgroud)

我想要标准的numpy技巧,如广播,比较等.

怎么做?numpy文档中的这个位置在哪里?

谢谢!

乌里

python string numpy character-encoding

15
推荐指数
2
解决办法
3万
查看次数

在ggplot2中结合连续和离散色标?

我是一个ggplot2新手.我正在制作散点图,其中点基于第三个连续变量着色.但是,对于某些点,该连续变量具有Inf值或NaN.如何为Inf生成具有特殊单独颜色的连续刻度,为NaN生成另一种单独颜色?

获得此行为的一种方法是对数据进行子集化,并为设置颜色的特殊点创建单独的图层.但我也希望特殊颜色能够进入传奇,并认为消除数据子集的需要会更加清晰.

谢谢!乌里

visualization r ggplot2

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

使用pandas,如何以有效的方式按组对大型DataFrame进行二次采样?

我正在尝试根据分组对DataFrame的行进行子采样.这是一个例子.假设我定义了以下数据:

from pandas import *
df = DataFrame({'group1' : ["a","b","a","a","b","c","c","c","c",
                            "c","a","a","a","b","b","b","b"],
                'group2' : [1,2,3,4,1,3,5,6,5,4,1,2,3,4,3,2,1],
                'value'  : ["apple","pear","orange","apple",
                            "banana","durian","lemon","lime",
                            "raspberry","durian","peach","nectarine",
                            "banana","lemon","guava","blackberry","grape"]})
Run Code Online (Sandbox Code Playgroud)

如果我按group1和分组group2,则每组中的行数如下:

In [190]: df.groupby(['group1','group2'])['value'].agg({'count':len})
Out[190]: 
      count
a  1  2    
   2  1    
   3  2    
   4  1    
b  1  2    
   2  2    
   3  1    
   4  1    
c  3  1    
   4  1    
   5  2    
   6  1    
Run Code Online (Sandbox Code Playgroud)

(如果有更简洁的方法来计算它,请告诉.)

我现在想构建一个DataFrame,每个组中有一个随机选择的行.我的建议就是这样做:

In [215]: from random import choice
In [216]: grouped = df.groupby(['group1','group2'])
In [217]: subsampled = grouped.apply(lambda x: df.reindex(index=[choice(range(len(x)))]))
In [218]: subsampled.index …
Run Code Online (Sandbox Code Playgroud)

python numpy r pandas data.table

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

9
推荐指数
4
解决办法
1万
查看次数

如何与d3.js同步加载JSON数据?

当我的网站首次初始化时,它会查询服务器以获取一些数据.在此数据恢复之前,我无法在页面上放置任何内容.使用d3.js,我可以使用d3.json()来获取我的数据,但由于它是异步的,我需要将整个页面逻辑放在回调函数中.如何请求数据并等待它返回?

json xmlhttprequest synchronous d3.js

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

如何对pandas DataFrame中的值进行离散化并转换为二进制矩阵?

我的意思是这样的:

我有一个DataFrame可能是分类或名义的列.对于每个观察(行),我想生成一个新行,其中变量的每个可能值现在都是它自己的二进制变量.例如,此矩阵(第一行是列标签)

'a'     'b'     'c'
one     0.2     0
two     0.4     1
two     0.9     0
three   0.1     2
one     0.0     4
two     0.2     5
Run Code Online (Sandbox Code Playgroud)

会被转换成这样的东西:

'a'              'b'                                                    'c'
one  two  three  [0.0,0.2)  [0.2,0.4)  [0.4,0.6)  [0.6,0.8)  [0.8,1.0]   0   1   2   3   4   5

 1    0     0        0          1          0          0          0       1   0   0   0   0   0
 0    1     0        0          0          0          0          1       0   1   0   0   0   0
 0    1     0        0          0          0          0          1       1 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

8
推荐指数
3
解决办法
2万
查看次数

在R中,"data.frame的标准公式接口"是什么意思?

aggregate各州的文件:

'aggregate.formula'是'aggregate.data.frame'的标准公式接口.

我是R的新手,我不明白这意味着什么.请解释!

谢谢!

乌里

aggregate r

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

如何在python中计算1的对数减去给定小数的指数

我正在进行概率计算.我有很多非常小的数字,我想从1中减去所有数字,并且准确地这样做.我可以准确地计算出这些小数的对数.到目前为止,我的策略是这样的(使用numpy):

给定一个小数字的日志数组x,计算:

y = numpy.logaddexp.reduce(x)
Run Code Online (Sandbox Code Playgroud)

现在我想计算类似1-exp(y)甚至更好的东西log(1-exp(y)),但我不确定如何在不失去所有精度的情况下这样做.

实际上,即使是logaddexp功能也会遇到精确问题.矢量中的值x可以在-2到-800之间,甚至更负.y上面的向量基本上会有1e-16左右的整个数字部分,这是eps数据类型的数字.因此,例如,准确计算的数据可能如下所示:

In [358]: x
Out[358]: 
[-5.2194676211172837,
 -3.9050377656308362,
 -3.1619783292449615,
 -2.71289594096134,
 -2.4488395891021639,
 -2.3129210706827568,
 -2.2709987626652346,
 -2.3007776073511259,
 -2.3868404149802434,
 -2.5180718876609163,
 -2.68619816583087,
 -2.8849022632856958,
 -3.1092603032627686,
 -3.3553673369747834,
 -3.6200806272462351,
 -3.9008385919463073,
 -4.1955300857178379,
 -4.5023981074719899,
 -4.8199676154248081,
 -5.1469905756384904,
 -5.4824035553480428,
 -5.8252945959126876,
 -6.174877049340779,
 -6.5304687083067563,
 -6.8914750074202473,
 -7.25737538919104,
 -7.6277121540338797,
 -8.0020812775389558,
 -8.3801247986220773,
 -8.7615244716292437,
 -9.1459964426584435,
 -9.5332867613176404,
 -9.9231675781398394,
 -10.315433907978701,
 -10.709900863130784,
 -11.106401278287066,
 -11.50478366390567,
 -11.904910436107656,
 -12.30665638039909,
 -12.709907313918777,
 -13.114558916892051,
 -13.52051570882999,
 -13.927690148982549,
 -14.336001843810081,
 -14.745376846921289,
 -15.155747039147968,
 -15.567049578271309,
 -15.979226409456359,
 -16.39222382873956,
 -16.805992092998878,
 -17.22048507074976,
 -17.63565992888303,
 -18.051476851117201,
 -18.467898784496384,
 -18.884891210740903, …
Run Code Online (Sandbox Code Playgroud)

python math floating-point numpy scipy

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

如何告诉pandas将特定列解析为日期时间对象,但不将其作为索引?

我有一个csv文件,其中一列是日期/时间字符串.我该如何正确解析pandas?我不想把那个列作为索引.谢谢!

乌里

python datetime parsing pandas

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