小编sea*_*507的帖子

pandas - 将多个JSON记录读入数据帧

我想知道是否有一种以内存有效的方式将多记录JSON文件(每行是JSON dict)读入pandas数据帧.下面是一个带有工作解决方案的2行示例,我需要它可能用于非常大量的记录.示例用法是处理来自Hadoop Pig JSonStorage函数的输出.

import json
import pandas as pd

test='''{"a":1,"b":2}
{"a":3,"b":4}'''
#df=pd.read_json(test,orient='records') doesn't work, expects []

l=[ json.loads(l) for l in test.splitlines()]
df=pd.DataFrame(l)
Run Code Online (Sandbox Code Playgroud)

python json pandas

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

为什么pandas在非对称误差条的两边应用相同的值?

我正在尝试使用pandas和matplotlib使用以下代码绘制具有不对称误差条的系列:

d = {'high_delta': {1: 0.6,
  2: 0.1,
  3: 0.2,
  4: 0.1,
  5: 0.1,
  6: 0.1,
  7: 0.1,
  8: 0.1,
  9: 0.2,
  10: 0.1},
 'low_delta': {1: 0.2,
  2: 0.1,
  3: 0.1,
  4: 0.1,
  5: 0.1,
  6: 0.1,
  7: 0.1,
  8: 0.1,
  9: 0.1,
  10: 0.4},
 'p_hat': {1: 0.2,
  2: 0.1,
  3: 0.3,
  4: 0.3,
  5: 0.1,
  6: 0.3,
  7: 0.2,
  8: 0.2,
  9: 0.1,
  10: 0.8}}

df = pandas.DataFrame(d)
 df['p_hat'].plot(yerr=df[['low_delta', 'high_delta']].T.values)
(df.p_hat + df.high_delta).plot(style='.')
(df.p_hat - df.low_delta).plot(style='*')
Run Code Online (Sandbox Code Playgroud)

下限似乎总是符合我的预期,但不是在上限添加值,而是再次添加下限的值.

如何将错误传递到matplotlib以便正确呈现错误栏?

matplotlib pandas

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

AWS Batch 作业卡在可运行状态

我正在尝试运行 100 个节点的 AWS Batch 作业,当我将计算环境设置为仅使用m4.xlargem5.xlarge实例时,一切正常,并且我的作业被拾取并运行。

但是,当我开始在我的计算环境中包含其他实例类型(例如 )时m5.2xlarge,作业会runnable无限期地停留在该状态。我在这些更新中更改的唯一变量是计算环境中的实例类型。

当我在计算环境中包含其他实例类型时,我不确定是什么导致无法完成这项工作。在计算环境参数的文档中,唯一的说明是:

创建计算环境时,您为计算环境选择的实例类型必须共享相同的架构。例如,您不能在同一计算环境中混合使用 x86 和 ARM 实例。

JobDefinition是多节点:

  • 节点 0
    • vCPU:1
    • 内存:15360 MiB
  • 节点 1:
    • vCPU:2
    • 内存:15360 MiB

我的计算环境最大 vCPUs 设置为10,000,始终处于VALID状态并且始终处于ENABLED。另外我的 EC2 vCPU 限制是6,000. CloudWatch 不提供任何日志,因为作业尚未启动,我不确定在这里还可以尝试什么。我也没有使用optimal实例类型的设置,因为我遇到了没有获得足够实例的问题。

amazon-web-services aws-batch

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

Pandas报告了top-n in group and pivot

我试图通过对单个维度d1进行分组并报告d1的每个元素的汇总统计信息来汇总数据帧.特别是我对许多指标的前n个(索引和值)感兴趣.我想要产生的是d1的每个元素的一行.

假设我有两个维度d1,d2和4个度量m1,m2,m3,m4

1)对于每个度量m1-m4,建议的d1分组方法是什么,并找到最高n d2和度量值.

在Wes的书中,他建议使用Python for Data Analysis(第35页)

def get_top1000(group):
 return group.sort_index(by='births', ascending=False)[:1000]
grouped = names.groupby(['year', 'sex'])
top1000 = grouped.apply(get_top1000)
Run Code Online (Sandbox Code Playgroud)

这仍然是推荐的方式(我只对1000s中的前5 d2以及多个指标感兴趣)2)现在接下来的问题是我想要转动前5位(即所以每个元素都有一行) d1)

因此,对于尺寸d1,d2和公制m1,结果数据框应如下所示:索引d1和d2的前5个值的列以及m1的对应值

d1 d2-1 d2-2 d2-3 d2-4 d2-5 m1-1 m1-2 m1-3 m1-4 m1-5

....

所以要转向我必须沿着d2创建排名(即1到5 - 这是我的列字段).如果我总是有5个条目,这很容易,但是对于给定的d1值,偶尔会有少于5个d2的元素.

所以有人可能会建议如何为分组添加排名,以便我有正确的列索引来执行透视

python pivot-table top-n pandas

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

将geom_line和其他ggplot对象添加到autoplot.survfit

我正在尝试向survMisc生成的生存图添加额外的行,但是我无法使其正常工作-问题是最后一行。

data(kidney, package="KMsurv")
s1 <- survfit(Surv(time, delta) ~ type, data=kidney)
p1<-autoplot(s1, type="fill", survLineSize=2)
d1=data.frame(x=seq(0,20,10),y=seq(0,1,.5))
p1$plot+geom_line(data=d1,aes_string(x='x',y='y'))
Run Code Online (Sandbox Code Playgroud)

eval(expr,envir,enclos)中的错误:找不到对象“ st”

我正在使用ggplot 1.01版和survMisc 0.4.6

r ggplot2

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