如何在 MySQL 中复制 pandas 函数?
How do I replicate a pandas function in MySQL?
我是 SQL 的新手,正在尝试忘记我在 python 中所知道的知识。我有一个脚本,我可以在其中连接到 SSMS 的 odbc 以处理 Python:
中的数据
import pyodbc
import pandas as pd
#odbc
conn = pyodbc.connect('Driver={SQL Server};'
'Server=PMZZ315\RION;'
'Database=Warehouse;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
df = pd.read_sql_query("SELECT [LetId],[StreetAddressLine1],[CompanyName] FROM Dim.Let", conn)
df
df.head()
#print(df.columns)
# Select duplicate rows except first occurrence based on all columns
duplicateRowsDF = df[df.duplicated(['CompanyName','StreetAddressLine1'])]
#print("Duplicate Rows except first occurrence based on all columns are :")
print(duplicateRowsDF)
duplicateRowsDF.to_csv("duplicateRowsDFodbc.csv")
SQL中有什么函数可以代替df.duplicated函数?我要做的就是检测重复记录,如果公司名称和街道地址重复,则忽略第一个实例
输出数据集的表示:
LetId StreetAddressLine1 CompanyName
32 1451 West Brimson View Court Palmer
405 1808 North Lonion Ave Ozark
465 4223 Monty Hwy Alabama
SQL 表表示 无序 集。排序仅由数据中的列提供。没有排序就没有"first"。让我假设 letid
定义了顺序。
SQL 中的规范方式使用 row_number()
:
select t.*
from (select t.*,
row_number() over (partition by CompanyName, StreetAddressLine1 order by letid) as seqnum
from t
) t
where seqnum = 1;
我是 SQL 的新手,正在尝试忘记我在 python 中所知道的知识。我有一个脚本,我可以在其中连接到 SSMS 的 odbc 以处理 Python:
中的数据import pyodbc
import pandas as pd
#odbc
conn = pyodbc.connect('Driver={SQL Server};'
'Server=PMZZ315\RION;'
'Database=Warehouse;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
df = pd.read_sql_query("SELECT [LetId],[StreetAddressLine1],[CompanyName] FROM Dim.Let", conn)
df
df.head()
#print(df.columns)
# Select duplicate rows except first occurrence based on all columns
duplicateRowsDF = df[df.duplicated(['CompanyName','StreetAddressLine1'])]
#print("Duplicate Rows except first occurrence based on all columns are :")
print(duplicateRowsDF)
duplicateRowsDF.to_csv("duplicateRowsDFodbc.csv")
SQL中有什么函数可以代替df.duplicated函数?我要做的就是检测重复记录,如果公司名称和街道地址重复,则忽略第一个实例
输出数据集的表示:
LetId StreetAddressLine1 CompanyName
32 1451 West Brimson View Court Palmer
405 1808 North Lonion Ave Ozark
465 4223 Monty Hwy Alabama
SQL 表表示 无序 集。排序仅由数据中的列提供。没有排序就没有"first"。让我假设 letid
定义了顺序。
SQL 中的规范方式使用 row_number()
:
select t.*
from (select t.*,
row_number() over (partition by CompanyName, StreetAddressLine1 order by letid) as seqnum
from t
) t
where seqnum = 1;