我有一个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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句