小编Ame*_*ina的帖子

选择/排除pandas中的列集

我想根据列选择从现有数据框创建视图或数据框.

例如,我想df2从数据框创建一个数据框,该数据框df1包含除其中两个列之外的所有列.我尝试了以下操作,但它不起作用:

import numpy as np
import pandas as pd

# Create a dataframe with columns A,B,C and D
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))

# Try to create a second dataframe df2 from df with all columns except 'B' and D
my_cols = set(df.columns)
my_cols.remove('B').remove('D')

# This returns an error ("unhashable type: set")
df2 = df[my_cols]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?也许更一般地说,大熊猫有哪些机制支持从数据框中挑选和排除任意列的列?

python dataframe pandas

244
推荐指数
9
解决办法
35万
查看次数

如何运行Conda?

如何在linux机器上运行conda?

我安装了Anaconda,可以运行Python,所以我假设我正确安装了它.

按照本指南:http: //docs.continuum.io/conda/intro.html,我正在尝试安装Python33,所以我正在复制并将以下行粘贴到我的控制台中:

conda create -n py33 python=3.3 anaconda
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个错误:

-bash: conda: command not found
Run Code Online (Sandbox Code Playgroud)

运行Conda需要做什么?

python anaconda conda

200
推荐指数
12
解决办法
50万
查看次数

使用IPython逐步调试

根据我的阅读,有两种方法可以在Python中调试代码:

  • 使用传统的调试器,如pdbipdb.这支持诸如cfor continue,nfor step-over,sfor step-into等命令,但是你没有直接访问IPython shell,这对于对象检查非常有用.

  • 使用 IPython的通过嵌入代码中的一个IPython的壳.您可以这样做from ipython import embed,然后embed()在您的代码中使用.当您的程序/脚本命中一个embed()语句时,您将被放入一个IPython shell中.这允许使用所有IPython好东西对对象进行全面检查并测试Python代码.但是,在使用时,embed()您无法使用便捷的键盘快捷键逐步完成代码.

有没有办法结合两全其美?即

  1. 能够 使用方便的pdb/ipdb键盘快捷键逐步完成代码.
  2. 在任何此类步骤(例如,在给定语句上),都可以访问完整的IPython shell.

MATLAB中进行IPython调试:

这种类型的"增强调试"的一个例子可以在MATLAB中找到,用户总是可以完全访问MATLAB引擎/ shell,她仍然可以逐步完成代码,定义条件断点等.我与其他用户讨论的内容,这是人们在从MATLAB迁移到IPython时最想念的调试功能.

在Emacs和其他编辑器中进行IPython调试:

我不想让问题太具体,但我主要在Emacs工作,所以我想知道是否有任何方法可以将此功能纳入其中.理想情况下,Emacs(或编辑器)将允许程序员在代码的任何位置设置断点,并与解释器或调试器通信以使其停在您选择的位置,并在该位置引入完整的IPython解释器.

python debugging emacs ipython pdb

156
推荐指数
8
解决办法
9万
查看次数

使用boto3列出存储桶的内容

如何查看S3中的存储桶内部有boto3什么?(即做一个"ls")?

执行以下操作:

import boto3
s3 = boto3.resource('s3')
my_bucket = s3.Bucket('some/path/')
Run Code Online (Sandbox Code Playgroud)

收益:

s3.Bucket(name='some/path/')
Run Code Online (Sandbox Code Playgroud)

我怎么看其内容?

python amazon-s3 boto boto3

146
推荐指数
14
解决办法
20万
查看次数

对组对象应用vs转换

考虑以下数据帧:

     A      B         C         D
0  foo    one  0.162003  0.087469
1  bar    one -1.156319 -1.526272
2  foo    two  0.833892 -1.666304
3  bar  three -2.026673 -0.322057
4  foo    two  0.411452 -0.954371
5  bar    two  0.765878 -0.095968
6  foo    one -0.654890  0.678091
7  foo  three -1.789842 -1.130922
Run Code Online (Sandbox Code Playgroud)

以下命令有效:

> df.groupby('A').apply(lambda x: (x['C'] - x['D']))
> df.groupby('A').apply(lambda x: (x['C'] - x['D']).mean())
Run Code Online (Sandbox Code Playgroud)

但没有以下工作:

> df.groupby('A').transform(lambda x: (x['C'] - x['D']))
ValueError: could not broadcast input array from shape (5) into shape (5,3)

> df.groupby('A').transform(lambda x: …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在Emacs中更新包

我有以下设置包(不确定是否有更好的推荐):

(require 'package)
(setq package-archives '(("ELPA" . "http://tromey.com/elpa/") 
                          ("gnu" . "http://elpa.gnu.org/packages/")
                          ("marmalade" . "http://marmalade-repo.org/packages/")))

; Apparently needed for the package auto-complete (why?)
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)

(package-initialize)
(setq url-http-attempt-keepalives nil)
Run Code Online (Sandbox Code Playgroud)

我有三个与安装和更新包有关的问题.

Q1.有没有办法更新可用包列表(和最新版本)并更新特定包?

Q.2以下包源有什么区别?:

  • ELPA,
  • GNU
  • 果酱
  • melpa

Q.3它们的添加顺序是否重要package-archives

emacs elpa

136
推荐指数
3
解决办法
8万
查看次数

指定并保存具有精确大小(以像素为单位)的图形

说我的图像大小为3841 x 7195像素.我想将图中的内容保存到磁盘,从而产生一个我指定的确切大小的图像(以像素为单位).

没有轴,没有标题.只是图像.我个人并不关心DPI,因为我只想指定图像在磁盘屏幕中所占的大小(以像素为单位).

我已经阅读了其他 主题,他们似乎都转换为英寸,然后以英寸为单位指定数字的尺寸,并以某种方式调整dpi.我想避免处理像素到英寸转换可能导致的精度损失.

我尝试过:

w = 7195
h = 3841
fig = plt.figure(frameon=False)
fig.set_size_inches(w,h)
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)
ax.imshow(im_np, aspect='normal')
fig.savefig(some_path, dpi=1)
Run Code Online (Sandbox Code Playgroud)

没有运气(Python抱怨宽度和高度必须都低于32768(?))

一切从我所看到的,matplotlib需要到指定的数字大小inchesdpi,但我只关心像素的数字发生在磁盘上.我怎样才能做到这一点?

澄清:我正在寻找一种方法matplotlib,而不是与其他图像保存库.

python matplotlib scipy

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

从ND到1D阵列

说我有一个数组a:

a = np.array([[1,2,3], [4,5,6]])

array([[1, 2, 3],
       [4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)

我想将其转换为1D数组(即列向量):

b = np.reshape(a, (1,np.product(a.shape)))
Run Code Online (Sandbox Code Playgroud)

但这会回来

array([[1, 2, 3, 4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)

这与以下不一样:

array([1, 2, 3, 4, 5, 6])
Run Code Online (Sandbox Code Playgroud)

我可以将此数组的第一个元素手动转换为1D数组:

b = np.reshape(a, (1,np.product(a.shape)))[0]
Run Code Online (Sandbox Code Playgroud)

但是这需要我知道原始数组有多少维度(并且在处理更高维度时连接[0])

是否存在从任意ndarray获取列/行向量的独立于维度的方法?

python numpy

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

将变量的名称作为字符串

这个主题讨论如何在Python中将函数的名称作为字符串获取:如何在Python中将 函数名称作为字符串获取?

如何为变量做同样的事情?(注意Python变量没有属性__name__,至少在Python中retrieve_name)

换句话说,如果我有一个变量,例如:

foo = dict()
foo['bar'] = 2
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个函数/属性,例如'foo':

retrieve_name(foo) 
Run Code Online (Sandbox Code Playgroud)

返回字符串 __name__

更新:

既然人们在问我为什么要这样做,这里就是一个例子.我想在此列表中在Pandas中创建一个DataFrame,其中列名 由实际字典的名称给出:

# List of dictionaries for my DataFrame
list_of_dicts = [n_jobs, users, queues, priorities]
Run Code Online (Sandbox Code Playgroud)

python

112
推荐指数
13
解决办法
16万
查看次数

熊猫:查找excel文件中的工作表列表

新版本的Pandas使用以下界面加载Excel文件:

read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])
Run Code Online (Sandbox Code Playgroud)

但是,如果我不知道可用的床单怎么办?

例如,我正在使用以下表格的excel文件

数据1,数据2 ...,数据N,foo,bar

但我不知道N先验.

有没有办法从熊猫的excel文档中获取工作表列表?

python excel xlrd pandas openpyxl

106
推荐指数
5
解决办法
9万
查看次数

标签 统计

python ×9

pandas ×3

emacs ×2

amazon-s3 ×1

anaconda ×1

boto ×1

boto3 ×1

conda ×1

dataframe ×1

debugging ×1

elpa ×1

excel ×1

ipython ×1

matplotlib ×1

numpy ×1

openpyxl ×1

pdb ×1

scipy ×1

xlrd ×1