所以我有一个名为 Frames 的本地数据框,其中有一个项列。 我想从Google BigQuery数据集 销售 中提取信息。 销售 有一个 itemnumber 列,我只希望获得 Frames 中存在的值 项目
我需要按照以下方式执行:
frames=pd.DataFrame.from_csv(path,index_col=None)
df = gbq.read_gbq('SELECT * FROM Usales.Sales where itemnumber in frames.item LIMIT 1000', project_id='Project')
答案 0 :(得分:2)
frames=pd.DataFrame.from_csv(path,index_col=None)
df = gbq.read_gbq('SELECT * FROM Usales.Sales where itemnumber in ({}) LIMIT 1000'.format(', '.join('"{0}"'.format(item) for item in frames['item'].tolist())), project_id='project')
答案 1 :(得分:0)
您需要从pandas DataFrame应用部分中分离出应用GBQ部分的部分。
E.g。
def getDataForAnItem(item):
# process item using gbq
print(item)
return gbq.read_gbq('SELECT * FROM Usales.Sales where itemnumber in frames."+str(item)+" LIMIT 1000', project_id='Project')
frames=pd.DataFrame.from_csv(path,index_col=None)
resultDF = df['item'].apply(getDataForAnItem)