如何在两列中加载信息?

时间:2018-12-15 19:33:21

标签: python-3.x pandas sqlite

问题1 :文件 phone.txt code:number

格式存储行

enter image description here

import pandas as pd
import sqlite3

con = sqlite3.connect('database.db')
data = pd.read_csv('phone.txt', sep='\t', header=None)
data.to_sql('post_table', con, if_exists='replace', index=False)

我想将所有 phone.txt 文件中的数据加载到 database.db 数据库中。但是我将所有内容都装入一列。我需要加载两列:

  1. 代码
  2. 号码

如何做到?

问题2 :将信息下载到数据库后,如何通过 code 查找 number ?例如,如果我想找出什么 number code = 7 (答案:9062621390)。

1 个答案:

答案 0 :(得分:1)

问题1

在您的示例中,pandas无法区分codenumber,因为您的文件是:分隔的。读取文件时,您需要将分隔符更改为:,并指定列,因为您的csv似乎没有这样的标题

data = pd.read_csv('phone.txt',
                   sep=':',
                   names=['code', 'number'])

问题2

将数据放入数据库后,您可以按以下方式查询

number = pd.read_sql_query('SELECT number FROM post_table WHERE code = (?)',
                           con,
                           params=(code,))

其中con是您的sqlite连接。