我使用a REST API来获取json如下文件:
import urllib2
import pandas as pd
import numpy as np
import requests
request='myrequest'
data= requests.get(request)
json=data.json()
df=pd.DataFrame(json)
Run Code Online (Sandbox Code Playgroud)
而数据框看起来像
items
0 {u'access': u'all', u'count': 501, u'time': 2014}
1 {u'access': u'all', u'count': 381, u'time': 2015}
Run Code Online (Sandbox Code Playgroud)
如何将这个单列(看起来像字典)转换为Pandas中的正确列?
编辑
原始的json数据看起来像这样
{
"items": [
{
"access": "all",
"count": 200,
"time": 2015
},
{
"access": "all",
"count": 14,
"time": 2015
},
]
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
考虑这个简单的例子
library(ggplot2)
dat <- data.frame(number = c(5, 10, 11 ,12,12,12,13,15,15))
ggplot(dat, aes(x = number)) + geom_histogram()
Run Code Online (Sandbox Code Playgroud)
看看这些条是如何与x轴奇怪对齐的?为什么栏位于左侧的5.0第一个栏位于10.0中心位置?我怎样才能控制它?例如,对标签右侧的条形图开始更有意义(对我而言).
谢谢!
考虑以下数据框
import pandas as pd
import numpy as np
import pyarrow.parquet as pq
import pyarrow as pa
idx = pd.date_range('2017-01-01 12:00:00.000', '2017-03-01 12:00:00.000', freq = 'T')
dataframe = pd.DataFrame({'numeric_col' : np.random.rand(len(idx)),
'string_col' : pd.util.testing.rands_array(8,len(idx))},
index = idx)
dataframe
Out[30]:
numeric_col string_col
2017-01-01 12:00:00 0.4069 wWw62tq6
2017-01-01 12:01:00 0.2050 SleB4f6K
2017-01-01 12:02:00 0.5180 cXBvEXdh
2017-01-01 12:03:00 0.3069 r9kYsJQC
2017-01-01 12:04:00 0.3571 F2JjUGgO
2017-01-01 12:05:00 0.3170 8FPC4Pgz
2017-01-01 12:06:00 0.9454 ybeNnZGV
2017-01-01 12:07:00 0.3353 zSLtYPWF
2017-01-01 12:08:00 0.8510 tDZJrdMM
2017-01-01 12:09:00 0.4948 …Run Code Online (Sandbox Code Playgroud) 我使用以下模板
---
title: "Nice try buddy"
author: "SpaceMan"
date: "13 December 2057"
output:
bookdown::pdf_document2
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage[table]{xcolor}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
---
---
references:
- id: fenner2012a
title: One-click science marketing
container-title: Nature Materials
volume: 11
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Title
\begin{equation}
f\left(k\right)=\binom{n}{k}p^k\left(1-p\right)^{n-k} \label{eq:binom}
\end{equation}
You may refer to it using `\@ref(eq:binom)`, e.g., …Run Code Online (Sandbox Code Playgroud) 我有一个大的csv,我加载如下
df=pd.read_csv('my_data.tsv',sep='\t',header=0, skiprows=[1,2,3])
Run Code Online (Sandbox Code Playgroud)
我在加载过程中遇到了几个错误.
首先,如果我没有指明warn_bad_lines=True,error_bad_lines=False我得到:
标记数据时出错.C错误:预计在329867行的22个字段中,看到24个
其次,如果我使用上面的选项,我现在得到:
CParserError:标记数据时出错.C错误:字符串中的EOF从第32357585行开始
问题是:我怎样才能看看这些不好的线条来理解发生了什么?是否有可能read_csv归还这些虚假的线?
我尝试了以下提示(当读取多个csv文件到HDF5时,Pandas ParserError EOF字符):
from pandas import parser
try:
df=pd.read_csv('mydata.tsv',sep='\t',header=0, skiprows=[1,2,3])
except (parser.CParserError) as detail:
print detail
Run Code Online (Sandbox Code Playgroud)
但仍然得到
标记数据时出错.C错误:预计在329867行的22个字段中,看到24个
有没有办法_merge在合并后获得等效的指标变量dplyr?
类似于Pandas indicator = True选项的东西基本上告诉你合并是如何进行的(来自每个数据集的匹配数等).
这是一个例子 Pandas
import pandas as pd
df1 = pd.DataFrame({'key1' : ['a','b','c'], 'v1' : [1,2,3]})
df2 = pd.DataFrame({'key1' : ['a','b','d'], 'v2' : [4,5,6]})
match = df1.merge(df2, how = 'left', indicator = True)
Run Code Online (Sandbox Code Playgroud)
在这里,经过left join之间df1和df2,你想立刻知道多少行df1找到了匹配中df2,有多少人没
match
Out[53]:
key1 v1 v2 _merge
0 a 1 4.0 both
1 b 2 5.0 both
2 c 3 NaN left_only
Run Code Online (Sandbox Code Playgroud)
我可以将这个merge变量制成表格:
match._merge.value_counts()
Out[52]: …Run Code Online (Sandbox Code Playgroud) 我的程序中有一个错误:(
问题是:
.py代码很长,需要很长时间才能运行的好消息是,我有很多print()在我py文件,所以我可能知道的bug生活。
在坏消息是,我的错误让我的电脑死机,所以没有办法,我看的输出ipython控制台,看看哪里出了问题。
程序运行时如何将输出写入磁盘?这样重启后我仍然可以打开文件,以了解崩溃之前发生了什么?
这个问题与将stdout重定向到Python中的文件不同吗?,因为我需要
非常感谢!
请考虑以下XML示例
library(xml2)
myxml <- read_xml('
<data>
<obs ID="a">
<name> John </name>
<hobby> tennis </hobby>
<hobby> golf </hobby>
<skill> python </skill>
</obs>
<obs ID="b">
<name> Robert </name>
<skill> R </skill>
</obs>
</data>
')
Run Code Online (Sandbox Code Playgroud)
在这里,我想从这个XML中获取一个(R或Pandas)数据框,其中包含列name和hobby.
但是,如您所见,存在对齐问题,因为hobby第二个节点中缺少对齐问题,John有两个爱好.
在R中,我知道如何一次提取一个特定值,例如使用xml2如下:
myxml%>%
xml_find_all("//name") %>%
xml_text()
myxml%>%
xml_find_all("//hobby") %>%
xml_text()
Run Code Online (Sandbox Code Playgroud)
但是如何在数据框中正确对齐此数据?也就是说,我如何获得如下的数据帧(注意我如何加入|John的两个爱好):
# A tibble: 2 × 3
name hobby skill
<chr> <chr> <chr>
1 John tennis|golf python
2 Robert <NA> R
Run Code Online (Sandbox Code Playgroud)
在R中,我更喜欢使用xml2和的解决方案dplyr …
我java.io.IOException: No space left on device在运行一个简单的查询后得到了这个sparklyr.我使用最后版本的Spark(2.1.1)和Sparklyr
df_new <-spark_read_parquet(sc, "/mypath/parquet_*", name = "df_new", memory = FALSE)
myquery <- df_new %>% group_by(text) %>% summarize(mycount = n()) %>%
arrange(desc(mycount)) %>% head(10)
#this FAILS
get_result <- collect(myquery)
Run Code Online (Sandbox Code Playgroud)
我确实设置了两个
spark.local.dir <- "/mypath/"spark.worker.dir <- "/mypath/"使用平常
config <- spark_config()
config$`spark.executor.memory` <- "100GB"
config$`spark.executor.cores` <- "3"
config$`spark.local.dir` <- "/mypath/"
config$`spark.worker.dir` <- "mypath/"
config$`spark.cores.max`<- "2000"
config$`spark.default.parallelism`<- "4"
config$`spark.total-executor-cores`<- "80"
config$`sparklyr.shell.driver-memory` <- "100G"
config$`sparklyr.shell.executor-memory` <- "100G"
config$`spark.yarn.executor.memoryOverhead` <- "100G"
config$`sparklyr.shell.num-executors` <- …Run Code Online (Sandbox Code Playgroud) 关于在R中滚动回归有很多问题,但在这里我特意寻找使用的东西dplyr,broom并且(如果需要的话)purrr.
这就是使这个问题与众不同的原因.我希望tidyverse保持一致.是否可以使用诸如purrr:map和之类的整洁工具进行适当的运行回归dplyr?
请考虑这个简单的例子:
library(dplyr)
library(purrr)
library(broom)
library(zoo)
library(lubridate)
mydata = data_frame('group' = c('a','a', 'a','a','b', 'b', 'b', 'b'),
'y' = c(1,2,3,4,2,3,4,5),
'x' = c(2,4,6,8,6,9,12,15),
'date' = c(ymd('2016-06-01', '2016-06-02', '2016-06-03', '2016-06-04',
'2016-06-03', '2016-06-04', '2016-06-05','2016-06-06')))
group y x date
<chr> <dbl> <dbl> <date>
1 a 1.00 2.00 2016-06-01
2 a 2.00 4.00 2016-06-02
3 a 3.00 6.00 2016-06-03
4 a 4.00 8.00 2016-06-04
5 b 2.00 6.00 2016-06-03
6 b 3.00 …Run Code Online (Sandbox Code Playgroud)