微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IPython Notebook上CSV文件的SQL语句

我有一个tabledata.csv文件,并且我一直在使用pandas.read_csv来读取或选择具有特定条件的特定列.

例如,我使用以下代码选择其中session_id = 1的所有“名称”,这在datascientistworkbench的IPython Notebook上运行良好.

             df = pandas.read_csv('/resources/data/findhelp/tabledata.csv')
             df['name'][df['session_id']==1]

我只是想知道在读取csv文件之后,是否可以以某种方式“切换/读取”它作为sql数据库. (我很确定我使用正确的术语没有很好地解释它,对此表示抱歉!).但是我想要的是我确实想在IPython Notebook上使用sql语句来选择具有特定条件的特定行.就像我可以使用类似的东西:

Select `name`, count(distinct `session_id`) from tabledata where `session_id` like "100.1%" group by `session_id` order by `session_id`

但是我想我确实需要找出一种方法来将csv文件更改为另一个版本,以便可以使用sql语句.多谢!

解决方法:

这是使用内置的sqlite3程序包对pandas和sql快速入门.一般来说,您可以以一种或另一种方式在熊猫中执行所有sql操作.但是数据库当然是有用的.您需要做的第一件事是将原始df存储在sql数据库中,以便您查询它.下面列出了步骤.

import pandas as pd
import sqlite3

#read the CSV
df = pd.read_csv('/resources/data/findhelp/tabledata.csv')
#connect to a database
conn = sqlite3.connect("Any_Database_Name.db") #if the db does not exist, this creates a Any_Database_Name.db file in the current directory
#store your table in the database:
df.to_sql('Some_Table_Name', conn)
#read a sql Query out of your database and into a pandas dataframe
sql_string = 'SELECT * FROM Some_Table_Name'
df = pd.read_sql(sql_string, conn)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐