pandas读取csv文件并在写入mysql数据库时与数据库去重
时间: 2023-09-13 14:04:47 浏览: 198
可以使用pandas库的drop_duplicates()方法实现去重功能,具体操作如下:
1. 使用pandas库的read_csv()方法读取csv文件,将数据存储在DataFrame对象中。
```
import pandas as pd
df = pd.read_csv('data.csv')
```
2. 连接mysql数据库,将DataFrame对象写入数据库。
```
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://user:password@localhost:3306/dbname')
df.to_sql('tablename', engine, if_exists='append', index=False)
```
其中,if_exists参数指定写入方式,append表示追加写入,如果已经存在则直接追加;replace表示替换写入,如果已经存在则先删除再写入;fail表示写入失败时不做任何操作。
3. 在写入数据库前,使用drop_duplicates()方法对DataFrame对象进行去重操作。
```
df.drop_duplicates(inplace=True)
```
其中,inplace参数为True表示在原DataFrame对象上进行修改,为False时返回一个新的DataFrame对象。
4. 完整代码如下:
```
import pandas as pd
from sqlalchemy import create_engine
# 读取数据
df = pd.read_csv('data.csv')
# 数据去重
df.drop_duplicates(inplace=True)
# 连接数据库并写入数据
engine = create_engine('mysql+pymysql://user:password@localhost:3306/dbname')
df.to_sql('tablename', engine, if_exists='append', index=False)
```
阅读全文