如何使用 pandas 清理 BigQuery 导出到 CSV
How to cleanup BigQuery export to CSV using pandas
我将我的 BigQuery 数据导出到 CSV,但无法弄清楚如何清理数据,因为 headers 都附加在后端的同一行中。
这是我的代码:
from google.cloud import bigquery
import pandas as pd
project = 'project1'
client = bigquery.Client(project=project)
defineQuery = """
SELECT *
FROM table
LIMIT 5;
"""
df = pd.DataFrame(client.query(defineQuery))
df.to_csv(r'C:/file-name.csv')
BigQuery CSV 文件导出只有 2 列,如下所示:-
| | 0 |
|-----|-------|
| 1|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 2|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 3|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 4|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 5|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
如何清理成下面这样?
| | Field 1 | Field 2 | Field 3 |
|-----|---------|---------|---------|
| 1| 123 | data | data2 |
| 2| 123 | data | data2 |
| 3| 123 | data | data2 |
| 4| 123 | data | data2 |
| 5| 123 | data | data2 |
提前致谢!
试试这个:
df = client.query(defineQuery).to_dataframe()
而不是
df = pd.DataFrame(client.query(defineQuery))
我将我的 BigQuery 数据导出到 CSV,但无法弄清楚如何清理数据,因为 headers 都附加在后端的同一行中。
这是我的代码:
from google.cloud import bigquery
import pandas as pd
project = 'project1'
client = bigquery.Client(project=project)
defineQuery = """
SELECT *
FROM table
LIMIT 5;
"""
df = pd.DataFrame(client.query(defineQuery))
df.to_csv(r'C:/file-name.csv')
BigQuery CSV 文件导出只有 2 列,如下所示:-
| | 0 |
|-----|-------|
| 1|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 2|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 3|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 4|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
| 5|Row((123,'data','data2'), {'Field 1':0, 'Field 2':1, 'Field 3':2})
如何清理成下面这样?
| | Field 1 | Field 2 | Field 3 |
|-----|---------|---------|---------|
| 1| 123 | data | data2 |
| 2| 123 | data | data2 |
| 3| 123 | data | data2 |
| 4| 123 | data | data2 |
| 5| 123 | data | data2 |
提前致谢!
试试这个:
df = client.query(defineQuery).to_dataframe()
而不是
df = pd.DataFrame(client.query(defineQuery))