小编use*_*827的帖子

Python boxplot不同长度的列

我在Python中有以下数据框(实际的数据框要大得多,只是提供一个小样本):

      A     B     C     D     E     F
0  0.43  0.52  0.96  1.17  1.17  2.85
1  0.43  0.52  1.17  2.72  2.75  2.94
2  0.43  0.53  1.48  2.85  2.83  
3  0.47  0.59  1.58        3.14  
4  0.49  0.80        
Run Code Online (Sandbox Code Playgroud)

我使用df.values将数据帧转换为numpy,然后将其传递给boxplot.

当我尝试从这个pandas数据帧中创建一个boxplot时,从每列中选取的值的数量被限制为列中的最小值(在本例中为F列).有什么方法可以从每一列中包装出所有值吗?

注意:我使用df.dropna删除每列中缺少值的行.但是,这会将数据帧的大小调整为列长度的最小公分母,并且会使绘图变得混乱.

import prettyplotlib as ppl
import numpy as np
import pandas
import matplotlib as mpl
from matplotlib import pyplot

df = pandas.DataFrame.from_csv(csv_data,index_col=False)
df = df.dropna()
labels = ['A', 'B', 'C', 'D', 'E', 'F']
fig, ax = pyplot.subplots()
ppl.boxplot(ax, df.values, xticklabels=labels)
pyplot.show()
Run Code Online (Sandbox Code Playgroud)

python boxplot pandas prettyplotlib

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

将sort应用于pandas groupby操作

如何对pandas groupby操作应用排序?下面的命令返回一个错误,指出'bool'对象不可调用

import pandas as pd

df.groupby('cokey').sort('A')

cokey       A   B
11168155    18  56
11168155    0   18
11168155    56  96
11168156    96  152
11168156    0   96
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在python matplotlib中调整boxplot中框的宽度

我想减少下面箱子图中框的宽度.这是我的代码,但它不起作用:

bp = plt.boxplot(boxes, widths = 0.6, patch_artist = True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib boxplot

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

改变python解释器mid-script

我在Windows机器上运行的项目有3个.py文件.其中一个文件调用一个只有32位的库.其他2个.py文件具有32位和64位兼容的库.它们看起来像这样:

fileA.py
        -- calls fileB.py (library is only 32 bit compatible)
        -- also calls function in fileC.py (libraries are both 32 and 64 bit compatible)
Run Code Online (Sandbox Code Playgroud)

现在,我遇到了fileC.py中的内存错误,如果我可以使用64位版本的python,可以解决这个问题.但是,如果我这样做,我在执行fileB.py时会遇到错误,因为它有一个32位的库,它与64位python(32位库是ArcPy)不能很好地对话.存储器错误的库是pandas,因为大熊猫无法读取32位系统的大于2GB的数据帧,所以会发生内存错误.

有没有办法我可以使用32位解释器为fileB.py和64位为fileC.py.请记住,这两个都是从fileA.py调用的.

python

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

Rasterio 安装失败

我正在尝试在 python 2.7 安装上将我的 rasterio 版本从 0.25 更新到 0.32,但运行起来遇到了麻烦。问题。有关如何修复它的任何信息吗?

 Running setup.py clean for rasterio
Failed to build rasterio
Installing collected packages: rasterio
  Found existing installation: rasterio 0.25.0
    Uninstalling rasterio-0.25.0:
      Successfully uninstalled rasterio-0.25.0
  Running setup.py install for rasterio: started
    Running setup.py install for rasterio: finished with status 'error'
    Complete output from command C:\Anaconda64\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\rit\\appdata\\local\\temp\\pip-build-dvzvvz\\rasterio\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\rit\appdata\local\temp\pip-4qousd-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-2.7
    creating build\lib.win-amd64-2.7\rasterio
    copying …
Run Code Online (Sandbox Code Playgroud)

python gdal rasterio

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

将数据框的所有数字列转换为绝对值

我想将数据框中的所有数字列转换为它们的绝对值,并且正在执行以下操作:

df = df.abs()
Run Code Online (Sandbox Code Playgroud)

但是,它给出了错误:

*** TypeError: bad operand type for abs(): 'unicode'
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?我真的不想手动指定列名

python pandas

6
推荐指数
3
解决办法
5391
查看次数

在多个本地项目中使用 python 文件/函数

我有多个 python 项目,每个项目都有一个实用程序文件,它们都具有相同的功能。

如何设置某种可以导入到所有本地项目的本地 python 库?我知道 Rodeo 有一些功能,你可以用它来指定一些函数/文件在多个 python 项目中可用。有没有办法在牛仔竞技之外做到这一点?

我不想创建一个可以通过 pip 使用的库(因为这意味着将它暴露给所有人)

python

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

在python中缓存netCDF文件的文件句柄

有没有办法缓存python文件句柄?我有一个函数,它将netCDF文件路径作为输入,打开它,从netCDF文件中提取一些数据并关闭它.它被调用了很多次,每次打开文件的开销很高.

如何通过缓存文件句柄来加快速度?也许有一个python库可以做到这一点

python netcdf

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

即使在pandas中使用.loc后,也会收到SettingWithCopyWarning警告

df_masked.loc[:, col] = df_masked.groupby([df_masked.index.month, df_masked.index.day])[col].\
            transform(lambda y: y.fillna(y.median()))
Run Code Online (Sandbox Code Playgroud)

即使在使用.loc之后,我也会得到这个.错误,我该如何解决?

Anaconda\lib\site-packages\pandas\core\indexing.py:476: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self.obj[item] = s
Run Code Online (Sandbox Code Playgroud)

python pandas

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

使用底图对齐地图

有没有办法对齐python底图,如下图所示?在此输入图像描述

以下是生成地图的一些示例底图代码:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 4.5))
plt.subplots_adjust(left=0.02, right=0.98, top=0.98, bottom=0.00)
m = Basemap(projection='robin',lon_0=0,resolution='c')
m.fillcontinents(color='gray',lake_color='white')
m.drawcoastlines()
plt.savefig('world.png',dpi=75)
Run Code Online (Sandbox Code Playgroud)

python matplotlib-basemap

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