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 :(
我已经做了 2 个命题,但在时间上并没有真正有效 第一个没有 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'])
谢谢你的建议!
最佳答案
如果你只需要计算记录的数量(len(master_id_list)
),你可以直接使用它:
人行横道['ID'].size
或
人行横道形状
如果您正在寻找唯一值,请尝试:
crosswalk['ID'].unique().size
关于python - 想使用 panda 使其看起来/像 sql 一样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45072249/