使用selected_data.to_excel(writer, sheet_name=xls_file),讲数据写入新的EXCEL时候,如何数据存在非法符号应该怎么做
时间: 2024-03-14 10:43:06 浏览: 140
如果数据中存在非法符号,可以尝试使用 Pandas 中的字符串处理函数进行清理,例如使用 ```selected_data.replace('[^\u4e00-\u9fa5A-Za-z0-9]+', '', regex=True)``` 将表格中的非中英文字符和数字删除。如果还是出现问题,可以考虑手动删除表格中的非法字符,或者将数据转换为字符串类型再写入 Excel 表格。
相关问题
import pandas as pd import os # 指定要查找的文件夹路径 folder_path = "/path/to/folder" # 指定要选取的字段 selected_columns = ['字段1', '字段2', '字段3'] # 创建一个新的 Excel 文件 writer = pd.ExcelWriter('output.xlsx') # 使用 os 模块列出文件夹中所有的 XLS 文件 xls_files = [f for f in os.listdir(folder_path) if f.endswith('.xls')] # 循环对每个 XLS 文件进行操作 for xls_file in xls_files: # 构造文件路径 file_path = os.path.join(folder_path, xls_file) # 使用 pandas 打开 XLS 文件 df = pd.read_excel(file_path) # 选取指定的字段 selected_data = df[selected_columns] # 将选取的数据写入到新的 Excel 文件中 selected_data.to_excel(writer, sheet_name=xls_file) # 保存并关闭新的 Excel 文件 writer.save() writer.close(),请看下这个代码,最终写入的EXCEL是不同的sheet,可以把读取到的数据,都卸载同一个sheet里面吗
可以将读取到的数据写入同一个 sheet 中,只需要将 `sheet_name=xls_file` 改成 `sheet_name='Sheet1'` 即可,如下所示:
```python
import pandas as pd
import os
# 指定要查找的文件夹路径
folder_path = "/path/to/folder"
# 指定要选取的字段
selected_columns = ['字段1', '字段2', '字段3']
# 创建一个新的 Excel 文件
writer = pd.ExcelWriter('output.xlsx')
# 使用 os 模块列出文件夹中所有的 XLS 文件
xls_files = [f for f in os.listdir(folder_path) if f.endswith('.xls')]
# 循环对每个 XLS 文件进行操作
for xls_file in xls_files:
# 构造文件路径
file_path = os.path.join(folder_path, xls_file)
# 使用 pandas 打开 XLS 文件
df = pd.read_excel(file_path)
# 选取指定的字段
selected_data = df[selected_columns]
# 将选取的数据写入到新的 Excel 文件中
selected_data.to_excel(writer, sheet_name='Sheet1')
# 保存并关闭新的 Excel 文件
writer.save()
writer.close()
```
这样就可以将所有读取到的数据写入到同一个 Sheet 中。
def zipjie(): f = zipfile.ZipFile("E:\daad\daaad\Ad.rar", 'r') # 压缩文件位置 for file in f.namelist(): f.extract(file, "E:\daad\daaad") # 解压位置 f.close() # 指定要查找的文件夹路径 folder_path = "E:\daad\daaad" # 指定要选取的字段 selected_columns = ['dsada', 'dasda'] # 使用 os 模块列出文件夹中所有的 XLS 文件 xls_files = [f for f in os.listdir(folder_path) if f.endswith('.xls')] # 检查 Excel 文件是否存在 writer = pd.ExcelWriter('E:\daad\daaad\qwd.xlsx') # 循环对每个 XLS 文件进行操作 for xls_file in xls_files: # 构造文件路径 file_path = os.path.join(folder_path, xls_file) # 使用 pandas 打开 XLS 文件 df = pd.read_excel(file_path) # 选取指定的字段,并判断,若不存在的字段跳过 valid_columns = [col for col in selected_columns if col in df.columns] if len(valid_columns) < len(selected_columns): print(f"Warning: {xls_file} contains invalid column names, skipping them") # 去除特殊符号和非法字符 for col in valid_columns: df[col] = df[col].apply(lambda x: re.sub(r'[^\w\s]', '', str(x))) df[col] = df[col].apply(lambda x: re.sub(r'[\d]', '', str(x))) selected_data = df[valid_columns] # 将选取的数据追加到现有的 Excel 文件中 selected_data.to_excel(writer, sheet_name=xls_file, index=False, header=False, startrow=len(pd.read_excel(file_path, sheet_name=xls_file))) # 保存并关闭新的 Excel 文件 writer.save() writer.close() zipjie() 帮我改造下代码,在字段写入的时候,若属性为时间格式,需要按照时间格式写入
def zipjie():
f = zipfile.ZipFile("E:\daad\daaad\Ad.rar", 'r') # 压缩文件位置
for file in f.namelist():
f.extract(file, "E:\daad\daaad") # 解压位置
f.close()
# 指定要查找的文件夹路径
folder_path = "E:\daad\daaad"
# 指定要选取的字段,以及对应的格式
selected_columns = {'dsada': 'str', 'dasda': 'datetime64'}
# 使用 os 模块列出文件夹中所有的 XLS 文件
xls_files = [f for f in os.listdir(folder_path) if f.endswith('.xls')]
# 检查 Excel 文件是否存在
writer = pd.ExcelWriter('E:\daad\daaad\qwd.xlsx')
# 循环对每个 XLS 文件进行操作
for xls_file in xls_files:
# 构造文件路径
file_path = os.path.join(folder_path, xls_file)
# 使用 pandas 打开 XLS 文件
df = pd.read_excel(file_path)
# 选取指定的字段,并判断,若不存在的字段跳过
valid_columns = {col: selected_columns[col] for col in selected_columns if col in df.columns}
if len(valid_columns) < len(selected_columns):
print(f"Warning: {xls_file} contains invalid column names, skipping them")
# 将时间格式的字段按照指定的格式进行写入
for col, dtype in valid_columns.items():
if dtype == 'datetime64':
df[col] = pd.to_datetime(df[col]).dt.strftime('%Y-%m-%d %H:%M:%S')
# 去除特殊符号和非法字符
for col in valid_columns.keys():
df[col] = df[col].apply(lambda x: re.sub(r'[^\w\s]', '', str(x)))
df[col] = df[col].apply(lambda x: re.sub(r'[\d]', '', str(x)))
selected_data = df[list(valid_columns.keys())]
# 将选取的数据追加到现有的 Excel 文件中
selected_data.to_excel(writer, sheet_name=xls_file, index=False, header=False, startrow=len(pd.read_excel(file_path, sheet_name=xls_file)))
# 保存并关闭新的 Excel 文件
writer.save()
writer.close()
zipjie()
阅读全文