小编Foo*_*Bar的帖子

迭代文件

我正在尝试根据我的(Windows 7)目的调整某人的代码.不幸的是,他特定于UNIX.他是这样的

dir_ = pathlib.PosixPath(str(somePathVariable))
os.chdir(str(dir_))
for pth in dir_:        
    # some operations here
Run Code Online (Sandbox Code Playgroud)

运行这个,我得到了(并不奇怪)

NotImplementedError: cannot instantiate 'PosixPath' on your system
Run Code Online (Sandbox Code Playgroud)

我看着文档pathlib,并认为是啊,我应该能够改变PosixPath到Path,我会被罚款.好吧,然后dir_生成一个WindowsPath对象.到现在为止还挺好.但是,我明白了

TypeError: 'WindowsPath' object is not iterable
Run Code Online (Sandbox Code Playgroud)

pathlib版本是1.0,我错过了什么?目的是遍历特定目录中的文件.谷歌搜索第二个错误给出了0次点击.

备注:无法pathlib用作标签,因此我将其放入标题中.

更新

我有Python 2.7.3和pathlib 1.0

python pathlib

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

插入/扩展季度到月度系列

我有一个包含季度观察的 data.frame。我现在想插入每月值(首选三次,线性很好)。中间目标应该是创建一个 data.frame,DATE作为所有每月观察的索引和缺失值。

谷歌搜索表明我应该为整个时间范围创建一个空的 data.frame 然后合并它 - 但到目前为止我尝试过的一切都给了我错误。这是我的程序;但由于我是 的新手r,我愿意接受任何更改建议。

> str(ger)
'data.frame':   93 obs. of  2 variables:
 $ DATE : Date, format: "1991-01-01" "1991-04-01" "1991-07-01" "1991-10-01" ...
 $ VALUE: num  470780 468834 466332 472949 480359 ...
> head(ger)
        DATE    VALUE
1 1991-01-01 470780.3
2 1991-04-01 468834.0
3 1991-07-01 466331.6
4 1991-10-01 472949.0
5 1992-01-01 480359.2
6 1992-04-01 476744.5

emptyIndex <- seq(ger[1, 'DATE'], tail(ger[, 'DATE'], 1), by='1 month')
gerMonthly <- data.frame(DATE = emptyIndex, VALUE = NA)
merge(ger, …
Run Code Online (Sandbox Code Playgroud)

merge datetime interpolation r

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

结合选择器条件

我想结合几个条件来从数组中选择行/列.

鉴于矩阵A,我知道

A[:, [1,3]] 
Run Code Online (Sandbox Code Playgroud)

给了我第二和第四列.也,

A[:, :3]
Run Code Online (Sandbox Code Playgroud)

奇迹般有效.但是,我没有结合条件:

A[:, [:3, 6, 7]]
Run Code Online (Sandbox Code Playgroud)

给我一个语法错误.我怎样才能选择这个选项?

python numpy

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

从对象创建数据框

我给了一组对象,需要将它们的属性保存在数据框中.这些对象都具有相同的属性,但值不同.

我在努力

dicts = [x.__dict__ for x in objectCollection]
df = pd.concat(dicts)
Run Code Online (Sandbox Code Playgroud)

但这会给我

TypeError: cannot concatenate a non-NDFrame object
Run Code Online (Sandbox Code Playgroud)

为了复制目的,我的r对象(它包含4个词典)

In[94]: r
Out[94]: 
[{'JB': 0.5261750636924186,
  'JBar': 0.5261750636925998,
  'U': 0.3294737627050343,
  'VB': 0,
  'VBar': 0,
  'WB': 0.3879376586708586,
  'WBar': 0.38793765867087865,
  'YB': 0.48616322013005736,
  'YBar': 0.4861632201302899,
  'pB': 1,
  'pBar': 1.0000000000002274,
  'theta': 30.452217802750784,
  'thetaB': 15.226108901371752,
  'thetaBar': 15.226108901379034,
  'u': 0.027673559739652746,
  'vB': 0.4213606342845696,
  'vBar': 0.4213606342847711,
  'wB': 0.40542217802756686,
  'wBar': 0.4054221780275895},
 {'JB': 0.591730026927601,
  'JBar': 0.5888459364503311,
  'U': 0.3574380470030322,
  'VB': 0,
  'VBar': 0,
  'WB': 0.4133529860815169,
  'WBar': 0.42286537327529117,
  'YB': 0.4450754942945968,
  'YBar': …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

numpy广播*all*的所有功能?

说我有两个对象X,Y形状k,1,n和k,m,n.我知道X当我进行诸如此类的操作时,numpy会自动沿第一维扩展/重复X + Y.这种魔法是否适用于numpy支持/包含的所有数学运算?

例如,我可以做到scipy.special.binom(X,Y)并获得预期的结果吗?我尝试了一些特殊功能,但没有收到错误.没有收到错误让我得出结论广播是否正确完成?

python numpy scipy

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

Xaxis-Tick 标签已消失,将熊猫绘制到子图上,但仍被存储

使用嵌套在其他pandas.DataFrame.plot()和GridSpec子情节设置中的复杂脚本,我遇到以下问题:

当我创建一个 2-cols 1-row gridspec 时,刻度标签都是正确的。然而,当我创建一个 1-col 2-rows gridspec 时,只要我使用 绘制到第一(上行)轴上pandas.DataFrame.plot(),顶行的 x-ticklabels 就会消失(刻度线仍然存在)。

一旦我在下斧头上画了一些东西,顶部刻度就不会改变,这sharex似乎不是问题。

但是,我的 x 标签仍然存储:

axes[0].get_xaxis().get_ticklabels()
Out[59]: 
<a list of 9 Text major ticklabel objects>
Run Code Online (Sandbox Code Playgroud)

只是它们没有显示出来。我怀疑是 NullFormatter,但事实并非如此:

axes[0].get_xaxis().get_major_formatter()
Out[57]: 
<matplotlib.ticker.ScalarFormatter at 0x7f7414330710>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我在第一个轴的顶部得到了刻度和标签

axes[0].get_xaxis().tick_top()
Run Code Online (Sandbox Code Playgroud)

但是,当我再回到 时tick_bottom(),我只有底部有刻度,没有标签。

尽管使用“正常”格式化程序,但什么会导致我存储的标签不显示?

这是一个简单的例子:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

from matplotlib import gridspec

df = pd.DataFrame(np.random.rand(100,2), columns=['A', 'B'])

figure = plt.figure()

GridSpec = gridspec.GridSpec(nrows=2, ncols=1)
[plt.subplot(gsSpec) for …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

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

Twinx/Secondary-y:不要从第一种颜色开始

我有一个配色方案来自

plt.style.use('ggplot')
Run Code Online (Sandbox Code Playgroud)

所以我不想手动选择颜色,或者从颜色循环器中选择它们。但是,当我有一个辅助轴时:

fig, ax = plt.subplots()
ax2 = ax.twinx()
ax.plot(np.array([1, 2]))
ax2.plot(np.array([3, 4]))
Run Code Online (Sandbox Code Playgroud)

它将以相同的颜色绘制两条线。我如何判断ax2该图上已经n=1绘制了线条,以便它以第n+1th 种颜色开头?

python matplotlib

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

对除一个轴之外的所有轴求和

有好几次,我处理过ND数组,比如

foo = np.arange(27).reshape((3,3, 3))
Run Code Online (Sandbox Code Playgroud)

然后我会有一个维度,我想在下一个操作中保留变量。假设下一个操作是mean,在这种情况下

preserveAxis = 1
desiredOutcome = foo.mean(axis=0).mean(axis=1)
Run Code Online (Sandbox Code Playgroud)

前一个是我想要的结果,因为我首先在第 0 个轴上取平均值,然后在第 2 个轴上取平均值(在初始操作后已成为第一个轴)。也就是说,我已经在轴 0 和 2 上完成了操作,但保留了轴 1。

这种类型的程序很麻烦,而且最重要的是不通用。我正在寻找一种通用方法来保留一个轴,但对所有其他轴进行求和/平均值。我怎样才能最好地实现这一目标,最好是在 以内numpy?

python numpy sum

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

重复相同的行Pandas Dataframe Construction

我想构建一个Pandas Dataframe,所有行应该等于df2的列名:

df1 = pd.Dataframe( ???, index=df2.index, columns=df2.columns)
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用:

df1 = pd.Dataframe(  np.repeat(df2.columns, df2.shape[0])  , index=df2.index, columns=df2.columns)
Run Code Online (Sandbox Code Playgroud)

python repeat dataframe construct pandas

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

如何对这个累积操作进行矢量化?

让我们看W一些维度矩阵(x, nP)[见问题末尾]

现在,我正在做以下代码:

uUpperDraw = np.zeros(W.shape)
for p in np.arange(0, nP):
    uUpperDraw[s, p] = (W[s+1,:(p+1)]).sum()
Run Code Online (Sandbox Code Playgroud)

我想将其矢量化以提高效率.鉴于a pGrid = [0, 1, ...],我如何重现以下内容?

uUpperDraw = np.array([sum(W[x, 0]), sum(W[x,0] + W[x, 1]), sum(W[x,0] + W[x, 1] + W[x, 2]) ...
Run Code Online (Sandbox Code Playgroud)

这是一个可重复的例子.

>>> s, nP
(3, 10)
>>> W

array([[ 0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
         0.        ,  0.        ,  0.        ,  0.        ,  0.        ],
       [ 0.        ,  0.        ,  0.        ,  0.        , …
Run Code Online (Sandbox Code Playgroud)

python numpy

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