使用openpyxl读取一个EXCEL文件获取的sheet内容转为dataframe再使用pandas另存为新的文件发现新文件的单元格包含原文件没有的_x000D_
时间: 2023-12-03 14:45:48 浏览: 47
这个问题通常是由于源文件中包含回车符(Carriage Return)或换行符(Line Feed)引起的,这些符号在不同操作系统和软件中的显示方式可能会有所不同。
你可以尝试使用 `strip()` 函数去除这些符号,然后再另存为新的文件。具体步骤如下:
```python
import openpyxl
import pandas as pd
# 打开源文件
workbook = openpyxl.load_workbook('source.xlsx')
# 读取指定的 sheet
worksheet = workbook['Sheet1']
# 将 sheet 转为 dataframe
data = worksheet.values
columns = next(data)[1:]
df = pd.DataFrame(data, columns=columns)
# 去除回车符和换行符
df = df.replace('\r\n', '', regex=True)
# 另存为新文件
df.to_excel('new_file.xlsx', index=False)
```
这样处理后,新文件中的单元格就不会包含 `_x000D_` 了。
相关问题
python用pandas读取一个文件夹内所有的excel文件,合并后生成一个新的表格并设置表格属性
可以使用Python的pandas和os库,以及openpyxl库来读取一个文件夹内所有的Excel文件,合并后生成一个新的表格,并设置表格属性。
以下是一个示例代码:
```python
import pandas as pd
import os
from openpyxl.styles import Font, Color, PatternFill
# 读取所有Excel文件
path = 'folder_path'
all_files = os.listdir(path)
excel_files = [f for f in all_files if f.endswith('.xlsx')]
# 合并数据
merged_df = pd.DataFrame()
for file in excel_files:
df = pd.read_excel(os.path.join(path, file))
merged_df = merged_df.append(df, ignore_index=True)
# 创建Excel文件
writer = pd.ExcelWriter('new_table.xlsx', engine='openpyxl')
# 将数据写入Excel文件并设置单元格格式
merged_df.to_excel(writer, index=False, sheet_name='Sheet1')
# 获取工作表对象
worksheet = writer.sheets['Sheet1']
# 设置单元格格式
header_font = Font(bold=True, color='FFFFFF')
header_fill = PatternFill(fgColor='000000', fill_type='solid')
for cell in worksheet['A1:Z1']:
for header in cell:
header.font = header_font
header.fill = header_fill
# 保存文件
writer.save()
```
这个示例代码将读取指定文件夹内所有的Excel文件,并将它们合并为一个DataFrame对象。然后,将合并的数据保存为一个名为new_table.xlsx的Excel文件,并将第一行的单元格设置为加粗字体和黑色背景色。你可以根据需要修改单元格属性。
python怎么把excel文件读成一个dataframe,然后与已有的另一个dataframe合并后再存入这个Excel文件?
### 回答1:
可以使用pandas库中的read_excel方法读取Excel文件为DataFrame,然后使用pandas的merge函数合并两个DataFrame,最后使用to_excel方法将合并后的DataFrame存入Excel文件。具体代码如下:
```
import pandas as pd
# 读取Excel文件1
df1 = pd.read_excel('file1.xlsx')
# 读取Excel文件2
df2 = pd.read_excel('file2.xlsx')
# 合并两个DataFrame
df_merged = pd.merge(df1, df2, on='column_name')
# 存入Excel文件
df_merged.to_excel('merged_file.xlsx', index=False)
```
在上述代码中,使用read_excel函数读取两个Excel文件,并将其转换为DataFrame。使用merge函数在指定列上合并两个DataFrame,并将合并后的结果存入新的Excel文件中(可以通过指定index参数为False来避免在Excel文件中存储DataFrame的索引)。
### 回答2:
在Python中,可以使用pandas库来处理Excel文件,实现将Excel文件读取成一个DataFrame,并将这个DataFrame与另一个已有的DataFrame合并,然后再将结果存入Excel文件。
下面是具体的代码实现:
1. 首先,导入所需的库:
```python
import pandas as pd
```
2. 读取Excel文件并生成DataFrame:
```python
df1 = pd.read_excel('文件名.xlsx', sheet_name='工作表名')
```
这里`文件名`是要读取的Excel文件的名字,`工作表名`是要读取的具体工作表的名字,如果只有一个工作表可以省略该参数。
3. 创建另一个DataFrame:
```python
df2 = pd.DataFrame({'列名1': [值1, 值2, ...], '列名2': [值1, 值2, ...], ...})
```
这里的`列名`是要创建的DataFrame的列的名字,`值`是对应的每个单元格的值,可以根据需求进行调整。
4. 合并两个DataFrame:
```python
merged_df = pd.concat([df1, df2], axis=0, ignore_index=True)
```
这里使用了`concat`函数将两个DataFrame合并,`axis=0`表示按照行的方向进行合并,`ignore_index=True`表示重置合并后的DataFrame的索引。
5. 将合并后的DataFrame存入Excel文件:
```python
merged_df.to_excel('文件名.xlsx', sheet_name='工作表名', index=False)
```
这里使用了DataFrame的`to_excel`方法,将合并后的DataFrame写入到指定的Excel文件中,`index=False`表示不将索引写入文件。
通过上述步骤,就可以实现将Excel文件读取成一个DataFrame,然后与另一个已有的DataFrame合并后再存入这个Excel文件。当然,具体的代码还需要根据实际情况进行调整。
### 回答3:
使用Python的pandas库可以很方便地实现将Excel文件读取为一个DataFrame,并与已有的另一个DataFrame合并后再将结果存入同一个Excel文件。
首先,需要安装pandas库,可以使用pip install pandas命令进行安装。
接下来,可以使用pandas的read_excel函数将Excel文件读取为一个DataFrame:
```
import pandas as pd
# 读取Excel文件为DataFrame
df1 = pd.read_excel('文件路径/文件名.xlsx')
```
接着,可以使用pandas的merge函数将两个DataFrame合并:
```
df2 = pd.DataFrame({'列1': [值1, 值2, ...], '列2': [值1, 值2, ...], ...}) # 另一个DataFrame
# 合并两个DataFrame
merged_df = pd.merge(df1, df2, on='共同列名', how='合并方式')
```
合并方式有多种选择,例如:inner代表取交集,outer代表取并集,left代表以第一个DataFrame为准等等。并且可以根据具体需求,选择适合的合并方式。
最后,可以使用pandas的to_excel函数将合并后的DataFrame写入同一个Excel文件:
```
# 存入同一个Excel文件
merged_df.to_excel('文件路径/文件名.xlsx', index=False)
```
index=False参数表示不写入行索引到Excel文件中。
以上就是使用Python将Excel文件读取为DataFrame,并与已有的另一个DataFrame合并后再存入同一个Excel文件的简单示例。