Python 自动生成各种excel文件的直方图
我在写一些代码,我需要一些帮助。我写的代码(发布在下面)需要做几件事,首先,它应该能够从它读取的文件中创建一个柱状图(它是这样做的),并相应地将其装箱。因此,这里我需要一些帮助,1)我需要找到一种方法,将箱子宽度更改为我需要的任意宽度(deltaT),而无需每次硬编码;2)我需要一些帮助,以便能够运行导入python的不同excel文件的代码,并将其导出为不同的excel文件。我相信,我不是很确定我对编码很陌生,我要处理的是一个数据帧。代码:Python 自动生成各种excel文件的直方图,python,excel,pandas,dataframe,Python,Excel,Pandas,Dataframe,我在写一些代码,我需要一些帮助。我写的代码(发布在下面)需要做几件事,首先,它应该能够从它读取的文件中创建一个柱状图(它是这样做的),并相应地将其装箱。因此,这里我需要一些帮助,1)我需要找到一种方法,将箱子宽度更改为我需要的任意宽度(deltaT),而无需每次硬编码;2)我需要一些帮助,以便能够运行导入python的不同excel文件的代码,并将其导出为不同的excel文件。我相信,我不是很确定我对编码很陌生,我要处理的是一个数据帧。代码: import pandas as pd import
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文件中添加一个yBin后缀。
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()
所以我对你的问题的解释是,你希望将直方图保存为excel文件中的图像。这是正确的吗?不是真的,我需要做的是将excel文件分为5个文件箱(这是我需要帮助更改的一件事),然后将它们与应用的文件箱一起导出到excel文件(确实如此,但只针对一个文件)。例如,它看起来很像一个列表,它计算一个数字之间的次数[0,5)有2个数字,其余数据的计数增加2,依此类推。它读取目录中的多个excel文件,应用代码,但只输出1个excel文件,而不是所有导入的excel文件。绘图只是为了显示。谢谢你,兄弟,工作顺利!你救了我的命