Python 3.x 如何从谷歌云将数据加载到jupyter笔记本虚拟机?
我正试图将谷歌云上存储的一堆csv文件加载到我的jupyter笔记本中。我使用Python3,Python 3.x 如何从谷歌云将数据加载到jupyter笔记本虚拟机?,python-3.x,jupyter-notebook,google-cloud-storage,Python 3.x,Jupyter Notebook,Google Cloud Storage,我正试图将谷歌云上存储的一堆csv文件加载到我的jupyter笔记本中。我使用Python3,gsutil不起作用 假设我在“\bucket1\1”中有6.csv文件。有人知道我应该做什么吗?您正在谷歌云虚拟机实例上运行。并且您希望将6.csv文件(您当前在云存储中的文件)加载到其中 安装依赖项: pip install google-cloud-storage pip install pandas 在笔记本上运行以下脚本: from google.cloud import storage i
gsutil
不起作用
假设我在“\bucket1\1”中有6.csv文件。有人知道我应该做什么吗?您正在谷歌云虚拟机实例上运行。并且您希望将6.csv文件(您当前在云存储中的文件)加载到其中
安装依赖项:
pip install google-cloud-storage
pip install pandas
在笔记本上运行以下脚本:
from google.cloud import storage
import pandas as pd
bucket_name = "my-bucket-name"
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
# When you have your files in a subfolder of the bucket.
my_prefix = "csv/" # the name of the subfolder
blobs = bucket.list_blobs(prefix = my_prefix, delimiter = '/')
for blob in blobs:
if(blob.name != my_prefix): # ignoring the subfolder itself
file_name = blob.name.replace(my_prefix, "")
blob.download_to_filename(file_name) # download the file to the machine
df = pd.read_csv(file_name) # load the data
print(df)
# When you have your files on the first level of your bucket
blobs = bucket.list_blobs()
for blob in blobs:
file_name = blob.name
blob.download_to_filename(file_name) # download the file to the machine
df = pd.read_csv(file_name) # load the data
print(df)
注:
- 是在python中处理数据分析时使用的良好依赖项,因此它将使您更容易使用csv文件
- 该代码包含两个备选方案:一个是如果子文件夹中有对象,另一个是如果第一级有对象,则使用适用于您的案例的方案
- 代码在所有对象之间循环,因此如果其中有其他类型的对象,则可能会出现错误
- 如果您运行笔记本的计算机上已经有文件,那么您可以忽略Google云存储行,只需在“read_csv”方法中指定每个文件的根/相对路径
- 有关列出云存储对象和下载云存储对象的更多信息,请转到
from google.cloud import storage
import pandas as pd
df = pd.read_csv('gs://name-of-your-bucket/path-to-your-file/name-of-your-file.csv', sep=",")
因此,在这里,您还可以使用pandas库,通过“gs://…”直接指定您在谷歌云存储中的文件路径。您是否在普通虚拟机上安装了Jupyter,您是在使用安装了Jupyter的深度学习虚拟机,还是在使用谷歌云数据实验室(Google的Jupyter超集)?在定义了我的实例之后,我点击了它的SSH并在控制台中输入了以下代码:
jupyter笔记本--ip=0.0.0.0--port=8888--no browser&
这产生了一个密钥,当我想在我的浏览器上登录jupyter时,我使用了该密钥谢谢您的代码。让我解释一下情况。我使用的是在谷歌云上运行的jupyter笔记本电脑。换句话说,我正在使用谷歌云计算。我也有我的数据文件(六个csv文件)在我的本地机器和谷歌云上。我想做的是,我想访问这些数据文件,用我在谷歌云上的jupyter笔记本处理它们。一种方法是“更新”文件,但它们太大了!我正在寻找一种更具python风格的方式来访问这些文件。让我看看我是否理解正确:您正在Google Cloud VM实例上运行Jupyter。您的本地计算机和谷歌云存储上都有这些文件。您希望能够加载在VM上运行的笔记本上的文件。我对我的答案进行了编辑,以融入一种更具Python风格的方式。