【发布时间】:2017-07-13 05:41:44
【问题描述】:
pysql = lambda q: pdsql.sqldf(q, globals())
str1 = "select coalesce(ID1, H_ID, [Alternate Source Unique
Identifier]) as Master_ID, [Alternate Source Unique Identifier] as Q_ID
from crosswalk;"
with Timer("Load master_ids:"):
master_id_list = pysql(str1)
print("Records: {}".format(len(master_id_list)))
master_id_list.head()
pySQL 只需 5 秒即可运行!!
我想在 python 中编写第二个脚本,因为我不能使用 pysql :(,有什么想法吗?请你对 python 中的第二个脚本进行最佳翻译?
我做了两个命题,但从时间上看不是很有效 第一个没有 Pandas(这是必需的)
def coalesce (df, column_names):
i=iter(column_names)
column_name=next(i)
answer=df[colum_name]
for column_name in i:
answer = answer.fillna(df[column_name])
return answer
coalesce(df, ['first', 'third', 'second'])
感谢您的建议!
【问题讨论】:
-
你为什么使用
copy()方法?我认为它会产生很多开销。 -
谢谢,你建议用什么来代替复制?
标签: python mysql pandas pysqlite