将多个csv读入sqlite
时间: 2023-05-31 13:08:00 浏览: 53
抱歉,我可以回答这个问题。可以使用Python的pandas库读取多个CSV文件,并使用sqlite3库将数据写入SQLite数据库。首先,导入pandas和sqlite3库:
```
import pandas as pd
import sqlite3
```
然后,读取CSV文件并将其合并为一个数据框:
```
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
df = pd.concat([df1, df2])
```
接下来,建立与SQLite数据库的连接,并将数据框写入一个新的表中:
```
conn = sqlite3.connect('database.db')
df.to_sql('table_name', conn, if_exists='replace', index=False)
conn.close()
```
请注意,您需要将“file1.csv”和“file2.csv”替换为您要读取的文件名,以及将“database.db”和“table_name”替换为您要创建的数据库和表名。
相关问题
将多个以日期命名的csv读入sqlite3生成多个db文件的代码
可以参考以下代码:
```
import sqlite3
import glob
import os
# 获取当前目录下所有以日期命名的csv文件
csv_files = glob.glob('[0-9]*.csv')
# 定义数据库文件名前缀
db_prefix = 'data_'
for csv_file in csv_files:
# 获取日期
date_str = os.path.splitext(csv_file)[0]
# 定义数据库文件名
db_name = db_prefix + date_str + '.db'
# 连接数据库并创建表
conn = sqlite3.connect(db_name)
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS data
(column1 TEXT, column2 REAL, column3 INT)''')
# 读取csv文件并插入数据到表中
with open(csv_file, 'r') as f:
for line in f:
data = line.strip().split(',')
c.execute("INSERT INTO data VALUES (?, ?, ?)", (data[0], float(data[1]), int(data[2])))
# 提交并关闭数据库连接
conn.commit()
conn.close()
print('生成数据库文件完成!')
```
该代码先使用glob模块获取当前目录下所有以日期命名的csv文件,然后定义数据库文件名前缀和数据库表结构,并对每个csv文件创建对应的数据库文件和表,最后读取csv文件并插入数据到数据库表中。记得修改表结构和CSV文件中的列数、列名和数据类型。
Python如何将csv写入sqlite
可以使用Python的sqlite3模块来将csv文件写入sqlite数据库。具体步骤如下:
1. 首先,需要导入sqlite3模块,并连接到sqlite数据库。
2. 然后,使用Python的csv模块读取csv文件。
3. 接着,使用sqlite3模块的`execute()`方法,向数据库中写入数据。
4. 最后,使用sqlite3模块的`commit()`方法,提交事务。
下面是一个示例代码:
```python
import sqlite3
import csv
# 连接到sqlite数据库
conn = sqlite3.connect("database.db")
# 读取csv文件
with open("data.csv", "r") as f:
reader = csv.reader(f)
# 忽略第一行(标题行)
next(reader)
# 遍历每一行
for row in reader:
# 向数据库中写入数据
conn.execute("INSERT INTO table_name VALUES (?, ?, ?)", row)
# 提交事务
conn.commit()
# 关闭连接
conn.close()
```
在上面的代码中,我们假设csv文件的第一行是标题行,并使用`next()`函数忽略它。然后,我们使用`for`循环遍历每一行,并使用`execute()`方法向数据库中写入数据。最后,我们使用`commit()`方法提交事务,并使用`close()`方法关闭数据库连接。
希望这能帮到你!