自动化直方图以改变excel文件

我正在写一些代码,我需要一些帮助。 我写的代码(在下面发表)必须做几件事情,首先它应该能够创build一个直方图(它),从一个文件,它读取和相应的bin。 所以这里是我需要一些帮助,1)我需要find一种方法来改变我的宽度任意的宽度(deltaT),而不必每次硬编码,2)我需要一些帮助能够运行导入到python的不同excel文件的代码,并将它们导出为不同的excel文件。 我相信,我不太确定自己对编码很陌生,所以我正在处理的是一个Dataframe。 码:

import pandas as pd import numpy as np import matplotlib.pyplot as plt import openpyxl from pandas import ExcelWriter data = pd.read_excel('/Users/user/Desktop/Data/Book1.xlsx') counts, bins, patches = plt.hist(data.values, bins=range(0, int(max(data.values)+5), 5)) df = pd.DataFrame({'bin_leftedge': bins[:-1], 'count': counts}) plt.title('Data') plt.xlabel('Neuron') plt.ylabel('# of Spikes') plt.show() writer = pd.ExcelWriter('/Users/user/Desktop/Data/output.xlsx') df.to_excel(writer,'Sheet2') writer.save() 

我试着读取另一个excel文件,如下所示:

 data2 = pd.read_excel('/Users/user/Desktop/Data/Book2.xlsx') 

然后把它放到代码中并运行,但是它只给出了第一个excel文件的结果(输出到另一个excel文件中)。 我究竟做错了什么? 请任何帮助将不胜感激。

更新:

所以我能够得到它读取多个文件,并在其上运行的代码,现在唯一我仍然不知道是如何让他们导出为不同的Excel文件,他们(加上箱宽变化)与代码应用于他们。 我稍微改了一下代码来:

 import pandas as pd import numpy as np import matplotlib.pyplot as plt import openpyxl from pandas import ExcelWriter import os for file in os.listdir('/Users/user/Desktop/Data'): data = pd.read_excel('/Users/user/Desktop/Data/{0}'.format(file)) counts, bins, patches = plt.hist(data.values, bins=range(0, int(max(data.values)+5), 5)) df = pd.DataFrame({'bin_leftedge': bins[:-1], 'count': counts}) plt.title('Data') plt.xlabel('Neuron') plt.ylabel('# of Spikes') plt.show() writer = pd.ExcelWriter('/Users/user/Desktop/Data/ouput.xlsx') df.to_excel(writer) writer.save() 

再次,任何帮助,不胜感激。 提前致谢。

由于循环中指定的output.xlsx Excel文件不会更改,所以只会导出一个文件,因此每次迭代都会覆盖该文件。 考虑下面,将原始Excel文件添加一个_bins后缀。

 datadir = '/Users/user/Desktop/Data/' for file in os.listdir(datadir): if file.endswith('.xlsx'): data = pd.read_excel(os.path.join(datadir, file)) #...data processing and graph output... outfile = os.path.join(datadir, file.replace('.xlsx', '_bins.xlsx')) writer = pd.ExcelWriter(outfile) df.to_excel(writer) writer.save()