如何根据本地csv

时间:2016-12-25 04:37:52

标签: python pandas google-bigquery

所以我有一个名为 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')

2 个答案:

答案 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)