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)

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...