python df.to_csv() 如何覆盖原有相同名字文件?
时间: 2023-05-23 20:05:29 浏览: 1042
A:可以在to_csv()方法中指定参数mode='w',表示覆盖写入方式。具体操作可以参考以下示例代码:
```python
import pandas as pd
# 假设要写入的数据是一个DataFrame对象,保存为test.csv文件
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
df = pd.DataFrame(data)
df.to_csv('test.csv', index=False)
# 修改数据后,覆盖原有文件
data = {'name': ['David', 'Emma', 'Frank'], 'age': [40, 45, 50]}
df = pd.DataFrame(data)
df.to_csv('test.csv', index=False, mode='w')
```
在修改数据后,第二个to_csv()方法中指定了mode='w',表示覆盖写入方式。这样就会覆盖掉原有的test.csv文件。注意,这里还通过index=False参数指定不保存行索引。
相关问题
python df.to_csv 怎么覆盖读写
你可以使用 `df.to_csv` 方法来将一个 DataFrame 对象保存为一个 CSV 文件。要覆盖现有的文件并进行写入,你可以使用 `mode` 参数设置为 `'w'`,这会覆盖现有的文件并重新写入数据。以下是一个示例:
```python
import pandas as pd
# 读取现有的 CSV 文件为 DataFrame 对象
df = pd.read_csv('data.csv')
# 对 DataFrame 进行一些修改...
# 将修改后的 DataFrame 覆盖写入原始的 CSV 文件
df.to_csv('data.csv', mode='w', index=False)
```
在上面的示例中,`mode='w'` 表示以写入模式打开文件,并覆盖原有的内容。`index=False` 参数用于防止写入索引列。确保提供正确的文件路径和文件名来覆盖正确的文件。
import csv import pandas as pd with open('学生信息表.csv', 'r') as f: reader = csv.reader(f) for row in reader: print([cell.replace(',', '') for cell in row]) new_data = ['17010002', '赵四', '女', '自动化1701'] df = pd.read_csv('学生信息表.csv') df.loc[df.shape[0]] = new_data df.to_csv('学生信息表.csv', index=False)代码改进
对于这段代码,可以进行以下的改进:
1. 使用with语句打开文件,可以在文件使用完毕后自动关闭文件,不需要手动调用f.close()方法。
2. 在读取CSV文件时,可以将csv.reader()返回的对象直接传给pd.DataFrame()方法,以构建DataFrame对象。
3. 在添加新数据时,可以使用pd.Series()方法构建一个新的Series对象,并将其添加到DataFrame对象中。
4. 在写入CSV文件时,可以使用mode='a'参数将数据追加到文件末尾,而不是覆盖原有数据。
综上所述,改进后的代码如下所示:
```python
import pandas as pd
# 读取CSV文件并输出数据
with open('学生信息表.csv', 'r') as f:
df = pd.DataFrame(csv.reader(f))
print(df)
# 添加新数据并写入CSV文件
new_data = pd.Series(['17010002', '赵四', '女', '自动化1701'])
df = df.append(new_data, ignore_index=True)
df.to_csv('学生信息表.csv', mode='a', header=False, index=False)
```
其中,ignore_index=True参数用于忽略添加新数据时的索引,header=False参数用于不写入列名。
阅读全文