我有一个Pandas数据帧列表,我想将它们组合成一个Pandas数据帧.我使用的是Python 2.7.10和Pandas 0.16.2
我从以下位置创建了数据框列表:
import pandas as pd
dfs = []
sqlall = "select * from mytable"
for chunk in pd.read_sql_query(sqlall , cnxn, chunksize=10000):
dfs.append(chunk)
Run Code Online (Sandbox Code Playgroud)
这将返回数据帧列表
type(dfs[0])
Out[6]: pandas.core.frame.DataFrame
type(dfs)
Out[7]: list
len(dfs)
Out[8]: 408
Run Code Online (Sandbox Code Playgroud)
这是一些示例数据
# sample dataframes
d1 = pd.DataFrame({'one' : [1., 2., 3., 4.], 'two' : [4., 3., 2., 1.]})
d2 = pd.DataFrame({'one' : [5., 6., 7., 8.], 'two' : [9., 10., 11., 12.]})
d3 = pd.DataFrame({'one' : [15., 16., 17., 18.], 'two' : [19., 10., 11., …Run Code Online (Sandbox Code Playgroud) 我想计算和聚合(总和)a中的列data.table,并且找不到最有效的方法来执行此操作.这似乎与我想要的R总结多个列data.table接近.
我的数据:
set.seed(321)
dat <- data.table(MNTH = c(rep(201501,4), rep(201502,3), rep(201503,5), rep(201504,4)),
VAR = sample(c(0,1), 16, replace=T))
> dat
MNTH VAR
1: 201501 1
2: 201501 1
3: 201501 0
4: 201501 0
5: 201502 0
6: 201502 0
7: 201502 0
8: 201503 0
9: 201503 0
10: 201503 1
11: 201503 1
12: 201503 0
13: 201504 1
14: 201504 0
15: 201504 1
16: 201504 0
Run Code Online (Sandbox Code Playgroud)
我希望VAR通过MNTH使用data.table进行计数和求和.期望的结果:
MNTH COUNT VAR …Run Code Online (Sandbox Code Playgroud) 我试图从ggplot2中的后简化人口金字塔中重现简单的人口金字塔
使用ggplot2和dplyr(而不是plyr).
这是原始示例plyr和种子
set.seed(321)
test <- data.frame(v=sample(1:20,1000,replace=T), g=c('M','F'))
require(ggplot2)
require(plyr)
ggplot(data=test,aes(x=as.factor(v),fill=g)) +
geom_bar(subset=.(g=="F")) +
geom_bar(subset=.(g=="M"),aes(y=..count..*(-1))) +
scale_y_continuous(breaks=seq(-40,40,10),labels=abs(seq(-40,40,10))) +
coord_flip()
Run Code Online (Sandbox Code Playgroud)
工作良好.
但是我怎样才能生成相同的情节dplyr呢?该示例plyr在subset = .(g ==语句中使用.
我尝试过以下内容dplyr::filter但出现错误:
require(dplyr)
ggplot(data=test,aes(x=as.factor(v),fill=g)) +
geom_bar(dplyr::filter(test, g=="F")) +
geom_bar(dplyr::filter(test, g=="M"),aes(y=..count..*(-1))) +
scale_y_continuous(breaks=seq(-40,40,10),labels=abs(seq(-40,40,10))) +
coord_flip()
Error in get(x, envir = this, inherits = inh)(this, ...) :
Mapping should be a list of unevaluated mappings created by aes or aes_string
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用x轴上的因子生成简单的散点图.结果图显示水平线而不是点(不幸的是无法上传图像).
根据我的教授的要求,根据Dobson,Bennett的" 广义线性模型简介"中的示例3.5,将一些SAS代码转录为R. 目的是向R介绍我的同学,所以我尽量保持这个简单和干净.
dat <- data.frame(age_group = c("30-34", "35-39", "40-44",
"45-49", "50-54", "55-59", "60-64", "65-69"),
deaths = c(1, 5, 5, 12, 25, 38, 54, 65),
population = c(17742, 16554, 16059, 13083, 10784, 9645, 10706, 9933))
dat <- within(dat, {
rate <- deaths / population * 100000
lograte <- log(deaths / population * 100000)
})
Run Code Online (Sandbox Code Playgroud)
而我的情节
with(dat, plot(age_group, lograte, pch=19))
Run Code Online (Sandbox Code Playgroud)
不会产生我想要的'点'.我有一个黑客攻击的解决方案,我稍后会发布,但想看看是否有更好的方法.再一次,道歉我无法上传图片.
这个问题类似于一次在data.table中创建一堆滞后变量以及如何在每个组中创建滞后变量?,但据我所知,并不完全相同.
我想创造一些领先的变量,例如lead1,lead2和lead3下面,通过分组groups.
示例数据
require(data.table)
set.seed(1)
data <- data.table(time =c(1:10,1:8),groups = c(rep(c("a","b"),c(10,8))),
value = rnorm(18))
data
time groups value
1: 1 a -0.62645381
2: 2 a 0.18364332
3: 3 a -0.83562861
4: 4 a 1.59528080
5: 5 a 0.32950777
6: 6 a -0.82046838
7: 7 a 0.48742905
8: 8 a 0.73832471
9: 9 a 0.57578135
10: 10 a -0.30538839
11: 1 b 1.51178117
12: 2 b 0.38984324
13: 3 …Run Code Online (Sandbox Code Playgroud)