我想根据列选择从现有数据框创建视图或数据框.
例如,我想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)
我究竟做错了什么?也许更一般地说,大熊猫有哪些机制支持从数据框中挑选和排除任意列的列?
如何在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中调试代码:
使用传统的调试器,如pdb
或ipdb
.这支持诸如c
for continue
,n
for step-over
,s
for step-into
等命令,但是你没有直接访问IPython shell,这对于对象检查非常有用.
使用 IPython的通过嵌入代码中的一个IPython的壳.您可以这样做from ipython import embed
,然后embed()
在您的代码中使用.当您的程序/脚本命中一个embed()
语句时,您将被放入一个IPython shell中.这允许使用所有IPython好东西对对象进行全面检查并测试Python代码.但是,在使用时,embed()
您无法使用便捷的键盘快捷键逐步完成代码.
有没有办法结合两全其美?即
这种类型的"增强调试"的一个例子可以在MATLAB中找到,用户总是可以完全访问MATLAB引擎/ shell,她仍然可以逐步完成代码,定义条件断点等.我与其他用户讨论的内容,这是人们在从MATLAB迁移到IPython时最想念的调试功能.
我不想让问题太具体,但我主要在Emacs工作,所以我想知道是否有任何方法可以将此功能纳入其中.理想情况下,Emacs(或编辑器)将允许程序员在代码的任何位置设置断点,并与解释器或调试器通信以使其停在您选择的位置,并在该位置引入完整的IPython解释器.
如何查看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)
我怎么看其内容?
考虑以下数据帧:
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) 我有以下设置包(不确定是否有更好的推荐):
(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以下包源有什么区别?:
Q.3它们的添加顺序是否重要package-archives
?
说我的图像大小为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
需要到指定的数字大小inches
和dpi
,但我只关心像素的数字发生在磁盘上.我怎样才能做到这一点?
澄清:我正在寻找一种方法matplotlib
,而不是与其他图像保存库.
说我有一个数组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中将函数的名称作为字符串获取:如何在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) 新版本的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文档中获取工作表列表?