【发布时间】:2021-04-23 17:51:48
【问题描述】:
我已阅读 this post 以尝试为我的问题应用解决方案。我有一个熊猫数据框生成如下:
def sql_query(query):
import pyodbc as p
import itertools
import pandas as pd
pd.set_option("display.max_rows", None, "display.max_columns", None)
databaseName = 'dbName'
username = '**************'
password = '**************'
server = '**************'
driver = '{SQL Server Native Client 11.0}'
CONNECTION_STRING = 'DRIVER='+driver+';SERVER='+server+';DATABASE='+databaseName+';UID='+username+';PWD='+ password
conn = p.connect(CONNECTION_STRING)
cursor = conn.cursor()
cursor.execute(query)
row = cursor.fetchone()
desc = cursor.description
column_names = [col[0] for col in desc]
data = [dict(zip(column_names, row))
for row in cursor.fetchall()]
conn.close()
df = pd.DataFrame(data)
df.groupby('Customer')['version'].max().reset_index()
print(df)
sql_query(query)
代码输出了 df,但我仍然发现了一些重复项。关于为什么会发生这种情况的任何原因? 示例输出:
客户版本 date1 date2
0 | 0112233 | 01 | 2021-01-14 16:00:05.963 | 2020-07-05 21:43:49
1 | 0112234 | 02 | 2021-01-14 16:00:05.963 | 2021-01-12 08:49:56
2 | 0113355 | 08 | 2021-01-14 16:00:05.963 | 2021-01-14 11:27:08
3 | 0113355 | 08 | 2021-01-14 16:00:05.963 | 2021-01-14 11:27:08
我希望我的代码删除客户 0113355 的其中一行,因为它们的日期完全相同。 关于为什么不删除重复项并返回列中的最大值的任何指针? 08 是最大值,但不应出现两次。
【问题讨论】:
标签: python sql pandas dataframe