我在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)
谢谢!
我想将结果数组作为二进制是/否.
我想出来了
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)
但是一次迭代数组一个值非常慢,我知道必须有一个更快的方法,最快的是什么?
我正在使用 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)
我该怎么做呢?
我编写了下面的代码,以使高斯曲线适合直方图.它似乎有效,虽然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)
谢谢!
我想看看是否存在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) 我有一些代码可以在 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'到 …
假设我有一个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
为什么以下两个陈述导致不同的结果?我在这里错过了什么?
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)