我有300个原始数据(.xlsm),并希望提取有用的数据并将其转换为csv文件作为后续神经网络的输入,现在我尝试以10个数据为例来实现它们,我已成功提取了信息我需要,但我不知道如何将它们转换为具有相同名称的csv文件,对于单个数据,我们可以使用df.to_csv,但是对于所有数据呢?具有for功能?
folder_name = 'Beispiel'
csvfilename = files.split('/')[-1].split('.')[0] + '.csv' # change into csv files
newtempfile = os.path.join(folder_name, csvfilename)
# Verify if directory exists
if not os.path.exists(folder_name):
os.makedirs(folder_name) # If not, create it
print(newtempfile)
list_of_dfs.to_csv(newtempfile, index=False)
问题解决了。
Hint
答案 0 :(得分:0)
最简单的方法是从excel中获取文件名,然后使用os.path.join()方法将其保存到所需的目录中。
directory = "C:/Test"
for files in excel_files:
csvfilename = (os.path.basename(file)[-1]).replace('.xlsm','.csv')
newtempfile=os.path.join(directory,csvfilename)
由于您已经具有要推入csv文件的excel df,只需将上述代码添加到循环中,然后将输出csv文件更改为“ newtempfile”即可。
df.to_csv(newtempfile, 'Beispel/data{0}.csv'.format(idx))
希望这会有所帮助。 :)
cols = ['KonzA', 'KonzB', 'KonzC', 'TempA',
'TempB', 'TempC', 'Modul1', 'Modul2',
'Modul3', 'Modul4', 'Modul5', 'Modul6']
excel_files = glob.glob('../../Versuch/Versuche/RohBeispiel/*.xlsm')
for file in excel_files:
data = pd.read_excel(file, columns = cols) # import only the columns you need to the dataframe
csvfilename = (os.path.basename(files)[-1]).replace('.xlsm','.csv')
newtempfile=os.path.join(directory,csvfilename)
# converting pandas dataframe columns to numeric: string into float
data[cols] = data[cols].apply(pd.to_numeric, errors='coerce', axis=1)
data[cols].fillna(method='ffill', inplace=True)
data.to_csv(newtempfile).format(idx)