我正在尝试设置一个脚本,该脚本将允许SQL查询和转换为pandas df。我在尝试使用DELETE FROM语句时遇到了一个问题。我目前有这样的东西:
UserPrincipal
我从s3中读取的表看起来像这样
import os
import boto3
import pandas as pd
import pandasql as ps
csv_file_path = 's3://bucket/folder/test.csv'
df = pd.read_csv(csv_file_path)
sql_mod = '''DELETE FROM df WHERE opt_out = 1'''
df1 = ps.sqldf(sql_mod, locals())
print(df1)
但是我的delete语句似乎返回了NULL DF。有没有办法使用保留标准SQL格式的pandas df运行SQL DELETE和INSERT?
答案 0 :(得分:0)
您需要一个select
语句,而不是delete
语句。
我不确定您的SQL实现的详细信息,但是delete
通常是破坏性的-我将检查您的数据是否仍然像您期望的那样(即,它是否仍然有很多行)。
要获取删除了所有选择退出的DataFrame,请使用where
:
sql_mod = '''SELECT * FROM df WHERE opt_out = 1'''