小编goo*_*ofd的帖子

low_memory和memory_map标志在pd.read_csv中做了什​​么

函数签名pandas.read_csv包括以下选项:

read_csv(filepath_or_buffer, low_memory=True, memory_map=False, iterator=False, chunksize=None, ...)
Run Code Online (Sandbox Code Playgroud)

我找不到任何文件low_memorymemory_map标志.我对这些功能是否已实现感到困惑,如果是这样,它们如何工作.

特别,

  1. memory_map:如果实现它是否使用np.memmap,如果是,它将各个列存储为memmap或行.
  2. low_memory:它是否指定了cache存储在内存中的内容?
  3. 我们可以将现有转换DataFramememmapped DataFrame

PS:相关模块的版本

pandas==0.14.0
scipy==0.14.0
numpy==1.8.1
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas

10
推荐指数
1
解决办法
4156
查看次数

R:列和/或行上的多索引

python,更具体地说pandas,我可以处理MultIndex行或列.有没有等价的R?我正在检查几个教程,例如https://en.wikibooks.org/wiki/R_Programming/Working_with_data_frames中的教程,但我找不到合适的R等效教程.

作为一个例子,我有以下数据框:

   A-1  A-2 B-1 B-2
0  1    2    0   1
1  2    0    1   3
2  4    1    3   2
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像:

   A         B
   1    2    1   2
0  1    2    0   1
1  2    0    1   3
2  4    1    3   2
Run Code Online (Sandbox Code Playgroud)

我从stackoverflow找到的其他相关答案

  1. 将列设置为索引
  2. 将多个列粘贴到索引

r dataframe

10
推荐指数
1
解决办法
5806
查看次数

python中的离散优化

我正在尝试使用该scipy.optimize包来优化离散优化问题(全局优化).根据doc,实施的模拟退火scipy.optimize.anneal应该是一个不错的选择.但我不确定如何强制优化器只搜索搜索空间的整数值.有人可以帮忙吗?

一个说明性示例:

f(x1,x2) = (1-0.4*x1)^2 + 100*(0.6*x2 -0.4*x1^2)^2

where, $x1, x2 \in I$

python optimization simulated-annealing scipy

9
推荐指数
1
解决办法
3772
查看次数

使用folium和pandas的等值线图

folium用来创建一组国家的等值区域地图.我正在关注http://folium.readthedocs.org/en/latest/#choropleth-examples上的文档.然而.由于某种原因,地图不显示任何阴影.我正在使用来自天然地球的世界geojson(参见要点).

我的数据框看起来像:

>>> spatial_scores.head()

Out[1]:
id  Country Score
PER Peru    2.810300
HND Honduras    2.734521
GUF French Guiana   2.730886
SLV El Salvador 2.473134
CRI Costa Rica  2.454963
Run Code Online (Sandbox Code Playgroud)

世界geojson看起来像:

>>> world_json['features'][0]['id']

Out [2]:
u'AFG'
Run Code Online (Sandbox Code Playgroud)

等值线代码的相关部分如下:

map1 = folium.Map(location=[-15., -60], zoom_start=4)

map1.geo_json(geo_path=world_json_path,
              data_out='data.json',
              data=spatial_scores,
              columns=['id', 'Score'],
              threshold_scale=[0, 1, 2, 3, 4],
              key_on='features.id',
              fill_color='BuPu', fill_opacity=0.7, line_opacity=0.5,
              legend_name='Score')

map1.create_map('./Scores.html')
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到任何等值的结果,只留下如下的基本国家地图 Chorpleth输出

有什么我做错了吗?

[编辑]

我解决了这个问题.绘制choropleth我需要只保留那些geojson也在我的数据框中的键.

merged = gdf.merge(spatial_scores, left_on='name', right_on='Country')
spatial_gdf = gpd.GeoDataFrame(merged.iloc[:, [0, 1]])
data_df = …
Run Code Online (Sandbox Code Playgroud)

python choropleth folium

9
推荐指数
1
解决办法
6236
查看次数

Python Pandas Frequency文档

我一直在尝试获得与pandas相关的freq参数的正确文档.例如,为了重新采样数据帧,我们可以做类似的事情

df.resample(rule='W', how='sum')
Run Code Online (Sandbox Code Playgroud)

这将每周重新采样.我想知道其他选项是什么,我如何定义自定义频率/规则.

编辑:澄清我正在寻找什么是其他合法选项rule

python pandas

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

Pandas DataFrame:使用列的唯一值转换帧

我有一个表格的pandas dataframe/csv

date        Country   Type     Val
2013-01-01  USA        x        23
2013-01-01  USA        y        13
2013-01-01  MX         x        11
2013-01-01  MX         y        14  
2013-01-02  USA        x        20
2013-01-02  USA        y        19
2013-01-02  MX         x        14
2013-01-02  MX         y        16
Run Code Online (Sandbox Code Playgroud)

我想将其转换为表单

date       Country     x   y 
2013-01-01  USA        23  13
2013-01-01  MX         11  14
2013-01-02  USA        20  19
2013-01-02  MX         14  16
Run Code Online (Sandbox Code Playgroud)

一般来说,我正在寻找一种使用单列的唯一值转换表的方法.

我看过了pivot,groupby但没有得到确切的表格.

提示:可能这是可以解决的,pivot但我无法得到表格

python csv pandas

5
推荐指数
1
解决办法
3562
查看次数

Cython:控制 cythonize 停止将编译的 .c 文件从 .pyx 文件放置在安装目录中

我有一个test包含敏感代码的小辅助函数。为了屏蔽此代码,我hello.pyx在包中编写并使用了该函数mypackage

我可以通过将setup.pyfor 包修改为以下内容来构建和使用它:

import os                                                                                                                                             
from setuptools import setup, find_packages                                                                                                           
from Cython.Build import cythonize                                                                                                                    
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))                                                                        

setup(                                                                                                                                                
    name='mypackage',                                                                                                                                  
    ext_modules = cythonize('mypackage/hello.pyx'),                                                                                             
    packages=find_packages(),                                                                                                                         
    include_package_data=True,                                                                                                                        
    )
Run Code Online (Sandbox Code Playgroud)

但是,当我通过python setup.pyor构建/安装它时pip install,生成的 cythonhello.c以及hello.so被放置在安装目录中(在我的情况下~/.local/python2.7/site-packages/mypackage/

我可以hello.c从安装目录中手动删除(只留下hello.so文件)并且包运行良好。

有没有办法可以自动化这个过程,这样我就不需要手动删除编译的c文件?

我看着这个stackoverflow 问题。但是,当我尝试使用pip wheel .. 另外,就我而言,只要安装的代码不包含纯文本文件,我就可以使用 tar.gz 进行安装hello.c

[编辑]

我能够.c通过include_package_data=False在我的setup.py.. 中使用来停止将文件放入安装目录

python cython python-2.7 cythonize

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

Python:使用 reuests 库进行多部分/表单数据

我对此相当菜鸟,并且一直在尝试将requests模块用于post多部分/表单数据。为了澄清这一点,我尝试使用的确切测试用例与https://github.com/kennethreitz/requests/issues/1081中的测试用例相同 。即我正在尝试执行post没有文件的操作:

--3eeaadbfda0441b8be821bbed2962e4d
Content-Disposition: form-data; name="key1"

value1
--3eeaadbfda0441b8be821bbed2962e4d
Run Code Online (Sandbox Code Playgroud)

根据线程上的讨论,我尝试了多部分表单数据方案来执行以下操作:

import requests
from requests_data_schemes import multipart_formdata as mfd
post_data = [('mouseAction', 'toggle'), ('zone' ,'10')]
post_data = mfd(post_data)
headers = {'Content-Type': 'multipart/form-data'}

req = requests.post(<url>, data=post_data, headers=headers)
Run Code Online (Sandbox Code Playgroud)

但是,测试服务器向我抛出一个错误,指出它无法检测多部分表单数据的边界。

我也尝试在标题中提供边界,但显然它不起作用。

boundary = post_data[2: post_data.find('\r\n')]
headers = {'Content-Type': 'multipart/form-data; boundary={}'.format(boundary)}
Run Code Online (Sandbox Code Playgroud)

我错过了一些简单的事情吗?

PS:通过一些冲浪,我发现了一些使用 base 的解决方案urllib2,但这将是我最后的手段,因为requests它让我可以轻松地做很多事情。

python multipartform-data python-2.7 python-requests

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

Python:从多个进程写入单个文件(ZMQ)

我想从多个进程写入一个文件.确切地说,我宁愿不使用多处理队列解决方案进行多处理,因为有几个子模块由其他开发人员编写.但是,对此类子模块的每次写入都与写入zmq队列相关联.有没有办法将zmq消息重定向到文件?具体来说,我正在寻找http://www.huyng.com/posts/python-logging-from-multiple-processes/的内容,而不使用该logging模块.

python zeromq pyzmq

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