Python 写入已有CSV文档同时命名工作表,不能覆盖原工作表
时间: 2023-05-27 08:06:03 浏览: 56
要在已有的CSV文件中写入数据并命名工作表,可以使用pandas库。
首先,读取CSV文件并将其转换为pandas.DataFrame对象:
```python
import pandas as pd
filename = 'example.csv'
df = pd.read_csv(filename)
```
然后,创建一个新的工作表并将数据写入该工作表:
```python
# 创建一个新的DataFrame对象
new_data = {'col1': [1, 2, 3], 'col2': ['a', 'b', 'c']}
new_df = pd.DataFrame(new_data)
# 写入新的工作表
writer = pd.ExcelWriter(filename, engine='openpyxl')
writer.book = load_workbook(filename)
new_df.to_excel(writer, index=False, sheet_name='NewSheet')
writer.save()
```
这将在现有的CSV文件中创建一个新的工作表,并将新的数据写入该工作表。要避免覆盖现有的工作表,可以使用不同的工作表名称。
相关问题
Python 写入CSV文档同时命名工作表
在 Python 中,可以使用 Pandas 库来将数据写入 CSV 文件,并使用工作表名称指定要写入的工作表。
以下是一个示例代码:
```python
import pandas as pd
# 创建数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 32, 18, 47],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
# 创建 Pandas DataFrame
df = pd.DataFrame(data)
# 创建 ExcelWriter 对象
writer = pd.ExcelWriter('example.xlsx')
# 将 DataFrame 写入工作表 'Sheet1'
df.to_excel(writer, sheet_name='Sheet1', index=False)
# 创建第二个 DataFrame
data2 = {'Animal': ['Cat', 'Dog', 'Rabbit', 'Fish'],
'Color': ['Brown', 'Black', 'White', 'Orange'],
'Weight': [5.2, 8.3, 3.5, 1.0]}
# 创建 Pandas DataFrame
df2 = pd.DataFrame(data2)
# 将 DataFrame 写入工作表 'Sheet2'
df2.to_excel(writer, sheet_name='Sheet2', index=False)
# 保存 Excel 文件
writer.save()
```
在此示例中,我们首先创建了一个 Pandas DataFrame,并将其写入工作表 'Sheet1'。然后,我们创建了另一个 DataFrame,并将其写入工作表 'Sheet2'。最后,我们将 Excel 文件保存到磁盘上。
请注意,我们在创建 ExcelWriter 对象时指定了文件名,并在每个 to_excel 调用中指定了工作表名称。此外,我们还将 index 参数设置为 False,以避免将索引列写入工作表。
python分块读取大文件csv,每块写入不同工作表,提高速度并发写入
可以使用Pandas的`read_csv()`和`to_excel()`函数来实现分块读取大文件csv,并将每块数据写入不同工作表的操作。
以下是一个示例代码:
```python
import pandas as pd
# 定义参数
chunksize = 100000 # 每块的行数
csv_file = 'large_file.csv'
excel_file = 'output.xlsx'
# 分块读取csv文件
reader = pd.read_csv(csv_file, chunksize=chunksize)
# 遍历每个块,并将每个块的数据写入不同的工作表
with pd.ExcelWriter(excel_file) as writer:
for i, chunk in enumerate(reader):
sheet_name = 'Sheet{}'.format(i+1)
chunk.to_excel(writer, sheet_name=sheet_name, index=False)
```
上述代码中,我们设置了每块的行数为`chunksize`,并使用`pd.read_csv()`函数将csv文件分块读取为多个DataFrame。然后,我们使用`pd.ExcelWriter()`函数创建一个ExcelWriter对象,并在每个块上循环,将每个块的数据写入不同的工作表,最终将所有工作表保存到一个Excel文件中。
这种方法可以提高速度,并且可以并发写入不同的工作表,因为每个块的数据是独立的。