小编Bri*_*eau的帖子

改进Pundas DataFrame上的行附加性能

我正在运行一个循环嵌套字典的基本脚本,从每个记录中抓取数据,并将其附加到Pandas DataFrame.数据看起来像这样:

data = {"SomeCity": {"Date1": {record1, record2, record3, ...}, "Date2": {}, ...}, ...}
Run Code Online (Sandbox Code Playgroud)

总共有几百万条记录.脚本本身看起来像这样:

city = ["SomeCity"]
df = DataFrame({}, columns=['Date', 'HouseID', 'Price'])
for city in cities:
    for dateRun in data[city]:
        for record in data[city][dateRun]:
            recSeries = Series([record['Timestamp'], 
                                record['Id'], 
                                record['Price']],
                                index = ['Date', 'HouseID', 'Price'])
            FredDF = FredDF.append(recSeries, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

然而,这种情况非常缓慢.在我寻找一种并行化的方法之前,我只是想确保我没有遗漏一些明显会让它表现得更快的东西,因为我对Pandas来说还是一个新手.

python numpy python-2.7 pandas

16
推荐指数
6
解决办法
2万
查看次数

使用ggmap创建正交贴图

在下面的脚本中,我读了许多点对并在地图上绘制线条.我正在使用ggmap从谷歌中提取地图来绘制这条线:

source('./library/latlong2state.R')

library(maps)
library(mapproj)
library(mapdata)
library(geosphere)
library(ggmap)

fileName = "_CanadaData/CanadaHospitalComplete.csv"

getLineColor <- function(val) {
  pal <- colorRampPalette(lineColours)
  colors <- pal(80)
  val.log <- log(val)

  if (val > 50) {
    col <- colors[80]
  } else {
    colindex <- max(1, round( 80 * val / 50))
    col <- colors[colindex]
  }
  return(col)
}

# Load the data
location <- read.csv(fileName, stringsAsFactors=FALSE)

# Omit locations that are not on the map of focus (not needed for city maps unless they are on a border)
location$state …
Run Code Online (Sandbox Code Playgroud)

maps google-maps r map-projections ggmap

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

仅使用 Pandas 来填补空白,而不是在末端使用 NaN

我有一些跨越大约 8 个月的房价数据,并跟踪房屋上市直至售出的价格。我想填充中间的数据中的几个空白,但我想保留每个末尾的 NaN 不变。

举一个简单的例子,假设我们有 house1,它在“第 4 天”以 200000 的价格上市,在“第 9 天”以 190000 的价格出售。我们有 house2 在第 1 天到第 12 天保持在 180000 并且在那个时间窗口内不出售。但是,第 6 天和第 7 天出了点问题,我丢失了数据:

house1 = [NaN, NaN, NaN, 200000, 200000, NaN, NaN, 200000, 190000, NaN, NaN, NaN]
house2 = [180000, 180000, 180000, 180000, 180000, NaN, NaN, 180000, 180000, 180000, 180000, 180000]
Run Code Online (Sandbox Code Playgroud)

现在想象一下,这些是 Pandas Dataframes 中按日期索引的列,而不是常规数组。

问题是,我通常用来填补这里空白的函数是DataFrame.fillna()使用 backfill 或 ffill 方法。如果我使用填充,house1 会返回:

house1 = [NaN, NaN, NaN, 200000, 200000, 200000, 200000, 200000, 190000, 190000, 190000, …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

使用xpathSApply解析XML文件,R v3.1.1,XML v3.98-1.1

我正在尝试解析R中的以下XML文件:http://reports.ieso.ca/public/GenOutputCapability/PUB_GenOutputCapability_20140517_v24.xml

到目前为止,我的脚本很简单:

file <- "http://reports.ieso.ca/public/GenOutputCapability/PUB_GenOutputCapability_20140517_v24.xml"
doc <- xmlTreeParse(file, useInternal=TRUE)
rootNode <- xmlRoot(doc)
xpathSApply(rootNode, "//GeneratorName", xmlValue)
Run Code Online (Sandbox Code Playgroud)

每当我运行它时,我的输出只是一个空列表.

将其用于其他XML文件,我可以提取值没问题,但对于这个特定的文件,我无法提取任何内容.我已经尝试了许多不同的节点,大写,使用useInternal = FALSE,以及我可以做的任何其他组合,但仍然没有运气.

我可以使用rootNode [["IMODocBody"]] [["Date"]]语法访问部件以获取日期,例如,因此我知道文件已加载.有任何想法吗?

xml r

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

标签 统计

numpy ×2

pandas ×2

python ×2

r ×2

ggmap ×1

google-maps ×1

map-projections ×1

maps ×1

python-2.7 ×1

xml ×1