小编El *_*uso的帖子

附加for循环中生成的pandas数据帧

我在for循环中访问一系列Excel文件.然后我将excel文件中的数据读取到pandas数据帧.我无法弄清楚如何将这些数据帧附加到一起,然后将数据帧(现在包含来自所有文件的数据)保存为新的Excel文件.

这是我试过的:

for infile in glob.glob("*.xlsx"):
    data = pandas.read_excel(infile)
    appended_data = pandas.DataFrame.append(data) # requires at least two arguments
appended_data.to_excel("appended.xlsx")
Run Code Online (Sandbox Code Playgroud)

谢谢!

python pandas

54
推荐指数
2
解决办法
10万
查看次数

阈值numpy数组的最快方法是什么?

我想将结果数组作为二进制是/否.

我想出来了

    img = PIL.Image.open(filename)

    array = numpy.array(img)
    thresholded_array = numpy.copy(array)

    brightest = numpy.amax(array)
    threshold = brightest/2

    for b in xrange(490):
        for c in xrange(490):
            if array[b][c] > threshold:
                thresholded_array[b][c] = 255
            else:
                thresholded_array[b][c] = 0

    out=PIL.Image.fromarray(thresholded_array)
Run Code Online (Sandbox Code Playgroud)

但是一次迭代数组一个值非常慢,我知道必须有一个更快的方法,最快的是什么?

python arrays numpy

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

向 matplotlib 等高线图添加十字准线或标记

我正在使用 matplotlib 将 NumPy 数组绘制为等高线图:

import numpy as np
import matplotlib.pyplot as plt

plt.contour(array, linewidths = 1, colors = 'k')
plt.contourf(array, cmap = plt.cm.jet)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

我想添加一个“十字准线”或另一个标记来表示数组中的最大值,该值由下式给出:

maxi = np.max(array)
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

python matplotlib python-2.7

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

使用MatPlotLib和Numpy将高斯拟合到直方图 - 错误的Y缩放?

我编写了下面的代码,以使高斯曲线适合直方图.它似乎有效,虽然Y缩放是不同的.我究竟做错了什么?

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab

list = [0,1,1,2,2,2,3,3,4]

plt.figure(1)
plt.hist(list)
plt.xlim((min(list), max(list)))

mean = np.mean(list)
variance = np.var(list)
sigma = np.sqrt(variance)
x = np.linspace(min(list), max(list),100)
plt.plot(x,mlab.normpdf(x,mean,sigma))

plt.show()
Run Code Online (Sandbox Code Playgroud)

谢谢!

python numpy matplotlib

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

查看Tkinter小部件是否存在(不使用.winfo_exists)

我想看看是否存在Tkinter小部件,所以我可以删除它.

此站点上的另一个答案是使用widget.winfo_exists但是1即使未创建窗口小部件也会返回,并且只有0在窗口小部件被销毁时才会返回:

import Tkinter as tk
root = tk.Tk()
label = tk.Label(root)
print label.winfo_exists() # returns 1
Run Code Online (Sandbox Code Playgroud)

和:

import Tkinter as tk
root = tk.Tk()
#label = tk.Label(root)
print label.winfo_exists() # also returns 1
Run Code Online (Sandbox Code Playgroud)

然而:

import Tkinter as tk
root = tk.Tk()
label = tk.Label(root)
label.destroy()
print label.winfo_exists() # returns 0
Run Code Online (Sandbox Code Playgroud)

我试图以这种方式使用它:

import Tkinter as tk
root = tk.Tk()
# label may exist
if label.winfo_exists() == 1:
    label.destroy() # doesn't work
Run Code Online (Sandbox Code Playgroud)

python tkinter

3
推荐指数
2
解决办法
3786
查看次数

在 tkinter Toplevel 中调整 matplotlib 图的大小

我有一些代码可以在 tkinter 顶级小部件中打开绘图。当我抓住顶层的一角来调整它的大小时,我希望绘图与窗口一起调整大小。

import Tkinter
import matplotlib
matplotlib.use('TkAgg')
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.backends.backend_tkagg import NavigationToolbar2TkAgg
from matplotlib.figure import Figure

class grapher_gui(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.graph()

    def graph(self):
        x_vals = [0,3,10,15]
        y_vals = [232,120,45,23]

        toplevel = Tkinter.Toplevel(width=2000)
        figure = Figure(figsize=(10,5))
        ax = figure.add_subplot(111)
        plot = ax.plot(x_vals, y_vals, 'k-')
        ax.set_xlabel('Time')
        ax.set_ylabel('Numbers')
        ax.set_title('Title')

        canvas = FigureCanvasTkAgg(figure, master=toplevel)
        canvas.show()
        canvas.get_tk_widget().grid(row=0)            
        toolbar = NavigationToolbar2TkAgg(canvas, toplevel)
        toolbar.grid(row=1, sticky=Tkinter.W) 
        toolbar.update() 
        toplevel.mainloop()

if __name__ == "__main__":
    app = grapher_gui(None)
    app.title('Grapher')
    app.mainloop()
Run Code Online (Sandbox Code Playgroud)

我唯一能想到尝试的就是添加sticky='NSEW'到 …

python tkinter matplotlib

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

处理numpy数组中的选定值范围

假设我有一个5x5阵列:

import numpy as np
arr = np.random.rand(5,5)
Run Code Online (Sandbox Code Playgroud)

如果我想总结整个数组我可以简单地:

np.sum(arr)
Run Code Online (Sandbox Code Playgroud)

我如何对由左上角(2,2)和右下角(4,3)定义的框中的值求和?

如果这不清楚我想在下面的数组中加总粗体x:

XXXXX

X XX XX

X XX XX

X XX XX

XXXXX

python numpy

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

简单的内联代码(python)的麻烦

为什么以下两个陈述导致不同的结果?我在这里错过了什么?

list = [1,2]

if (item < 0 for item in list):
    print "This prints."  

for item in list:
    if item < 0:
        print "This doesn't print."
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

标签 统计

python ×8

matplotlib ×3

numpy ×3

python-2.7 ×2

tkinter ×2

arrays ×1

pandas ×1