将openpyxl获取的sheet内容转为dataframe
时间: 2023-08-07 15:04:15 浏览: 1355
要将 Openpyxl 获取的 sheet 内容转为 Pandas 的 DataFrame,可以使用 Pandas 的 `read_excel()` 函数。具体步骤如下:
1. 从 Openpyxl 中获取 sheet 内容并保存为二维列表
```python
import openpyxl
# 打开 Excel 文件并获取 sheet
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']
# 将 sheet 内容保存为二维列表
data = []
for row in sheet.iter_rows(values_only=True):
data.append(list(row))
```
2. 将二维列表转为 Pandas 的 DataFrame
```python
import pandas as pd
# 将二维列表转为 DataFrame
df = pd.DataFrame(data[1:], columns=data[0])
```
其中,`data[0]` 为表头,`data[1:]` 为数据。如果 sheet 有表头,可以使用 `columns=data[0]` 将表头传递给 DataFrame 构造函数;如果没有表头,可以不传递 `columns` 参数,Pandas 会自动生成默认的列名。
相关问题
将openpyxl读取一个EXCEL文件获取的sheet内容转为dataframe再使用pandas另存为新的文件发现新文件大小比原文件小
这种情况可能是由于以下原因导致的:
1. 文件格式不同:原文件可能是.xlsx格式,而新文件可能是.csv格式,后者的文件大小通常比前者小。
2. 数据类型不同:在将数据从Excel文件转换为DataFrame时,可能会出现数据类型转换的情况。例如,原文件中的某些列是数字类型,但是在转换为DataFrame时被转换为了字符串类型。这可能会导致新文件大小的变化。
3. 空值处理:在将数据从Excel文件转换为DataFrame时,可能会对空值进行处理。例如,将空值替换为0或其他值。这可能会导致新文件大小的变化。
为了确定原因,可以尝试将新文件转换为与原文件相同的格式,并检查数据类型和空值处理。如果这些都相同,那么文件大小的变化可能是由于数据量减少或其他原因导致的。
使用openpyxl读取一个EXCEL文件获取的sheet内容转为dataframe再使用pandas另存为新的文件发现新文件的单元格包含原文件没有的_x000D_
这个问题通常是由于源文件中包含回车符(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_` 了。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)