说我有一个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)
现在我想计算每个组合的观察次数name
和type
.这可以这样做:
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完成的.
说我有以下数组:
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文档中的这个位置在哪里?
谢谢!
乌里
我是一个ggplot2新手.我正在制作散点图,其中点基于第三个连续变量着色.但是,对于某些点,该连续变量具有Inf值或NaN.如何为Inf生成具有特殊单独颜色的连续刻度,为NaN生成另一种单独颜色?
获得此行为的一种方法是对数据进行子集化,并为设置颜色的特殊点创建单独的图层.但我也希望特殊颜色能够进入传奇,并认为消除数据子集的需要会更加清晰.
谢谢!乌里
我正在尝试根据分组对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) 可能重复:
检查列表是否已排序的Pythonic方法
在python中,如何测试数字列表是否已经排序?
当我的网站首次初始化时,它会查询服务器以获取一些数据.在此数据恢复之前,我无法在页面上放置任何内容.使用d3.js,我可以使用d3.json()来获取我的数据,但由于它是异步的,我需要将整个页面逻辑放在回调函数中.如何请求数据并等待它返回?
我的意思是这样的:
我有一个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) aggregate
各州的文件:
'aggregate.formula'是'aggregate.data.frame'的标准公式接口.
我是R的新手,我不明白这意味着什么.请解释!
谢谢!
乌里
我正在进行概率计算.我有很多非常小的数字,我想从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) 我有一个csv文件,其中一列是日期/时间字符串.我该如何正确解析pandas
?我不想把那个列作为索引.谢谢!
乌里