【问题标题】:Is it possible to manipulate a dataframe created through Pandas using SQL?是否可以使用 SQL 操作通过 Pandas 创建的数据框?
【发布时间】:2020-10-18 11:51:19
【问题描述】:

所以我正在尝试创建一个 python 脚本,它允许我对使用 pandas 创建的数据框(主文件)执行 SQL 操作。数据框从特定文件夹中的 csv 文件中提取其内容。

我能够成功创建其他所有内容,但我在 SQL 操作部分遇到了问题。我正在尝试将数据框用作“数据库”,我将在其中使用我的 SQL 查询提取数据,但我收到“AttributeError: 'DataFrame' object has no attribute 'cursor'”错误。

我并没有真正看到很多关于 pandas.read_sql_query() 的示例,所以我很难理解如何在其中使用我的数据框。

import os 
import glob 
import pandas

os.chdir("SOMECENSOREDDIRECTORY")

all_csv = [i for i in glob.glob('*.{}'.format('csv')) if i != 'Masterfile.csv']

edited_files = [] 
for i in all_csv:
    df = pandas.read_csv(i)
    df["file_name"] = i.split('.')[0]
    edited_files.append(df)

masterfile = pandas.concat(edited_files, sort=False)

print("Data fields are as shown below:") 
print(masterfile.iloc[0])

sql_query = "SELECT Country, file_name as Year, Happiness_Score FROM masterfile WHERE Country = 'Switzerland'"
            
output = pandas.read_sql_query(sql_query, masterfile)

output.to_csv('data_pull')

我知道这部分是错误的,但这是我试图开始工作但不知道如何实现的概念:

output = pandas.read_sql_query(sql_query, masterfile)

感谢我能得到的任何帮助!顺便说一句,我是一个自以为是的 Python 程序员,所以我可能会遗漏一些一般规则或其他东西。谢谢!

编辑:将“slice”替换为“manipulate”,因为我意识到我不想只对它进行切片。还修复了我的代码块上的一些对齐问题。

【问题讨论】:

    标签: python sql dataframe sqlalchemy


    【解决方案1】:

    可以对通过 Pandas 和 SQL 创建的数据帧进行切片您可以使用熊猫的 loc 函数对数据帧进行切片。 pd.df.loc[row,colums]

    【讨论】:

    • 我明白了,但是我实际上也在尝试让它与 SQL 一起工作,以便我可以按照 SQL 允许的方式对数据帧执行更复杂的数据操作。
    • 您可以将 SQL 转换为 Pandas Dataframe 然后您可以继续。
    猜你喜欢
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多