Pandas:如何从 Google Drive public 读取 CSV 文件?

Pou*_*del 10 python pandas

我搜索了有关从 URL 读取 csv 的类似问题,但找不到从 google drive csv 文件读取 csv 文件的方法。

我的尝试:

import pandas as pd

url = 'https://drive.google.com/file/d/0B6GhBwm5vaB2ekdlZW5WZnppb28/view?usp=sharing'
dfs = pd.read_html(url)
Run Code Online (Sandbox Code Playgroud)

我们如何在 Pandas 中读取这个文件?

相关链接:

Pou*_*del 17

这对我有用

url='https://drive.google.com/file/d/0B6GhBwm5vaB2ekdlZW5WZnppb28/view?usp=sharing'
url2='https://drive.google.com/uc?id=' + url.split('/')[-2]
df = pd.read_csv(url2)
Run Code Online (Sandbox Code Playgroud)

  • 我认为这可能是一个很好的例子,但是当文件很大时(比如我尝试下载的 565MB 文件),它会下载页面的 HTML,告诉您文件太大而无法进行病毒扫描,并询问您是否想要下载它(而不仅仅是下载文件) (3认同)
  • 如何提取下载 URL 的示例非常有用。精彩的答案。 (2认同)

Sam*_*hal 13

要从谷歌驱动器读取 CSV 文件,您可以这样做。

import pandas as pd

url = 'https://drive.google.com/file/d/0B6GhBwm5vaB2ekdlZW5WZnppb28/view?usp=sharing'
path = 'https://drive.google.com/uc?export=download&id='+url.split('/')[-2]
df = pd.read_csv(path)
Run Code Online (Sandbox Code Playgroud)

我认为这是从谷歌驱动器读取 CSV 文件的最简单方法。希望你的“知道链接的人”选项在谷歌驱动器中启用。

  • 不知道这怎么没有更多的提升。具有最少依赖性的最干净的解决方案。出色的 (3认同)
  • 不适用于较大(超过 100 MB)的文件。 (2认同)

Pou*_*del 12

使用熊猫

import pandas as pd

url='https://drive.google.com/file/d/0B6GhBwm5vaB2ekdlZW5WZnppb28/view?usp=sharing'
file_id=url.split('/')[-2]
dwn_url='https://drive.google.com/uc?id=' + file_id
df = pd.read_csv(dwn_url)
print(df.head())
Run Code Online (Sandbox Code Playgroud)

使用 pandas 和请求

import pandas as pd
import requests
from io import StringIO

url='https://drive.google.com/file/d/0B6GhBwm5vaB2ekdlZW5WZnppb28/view?usp=sharing'

file_id = url.split('/')[-2]
dwn_url='https://drive.google.com/uc?export=download&id=' + file_id
url2 = requests.get(dwn_url).text
csv_raw = StringIO(url2)
df = pd.read_csv(csv_raw)
print(df.head())
Run Code Online (Sandbox Code Playgroud)

输出

      sex   age state  cheq_balance  savings_balance  credit_score  special_offer
0  Female  10.0    FL       7342.26          5482.87           774           True
1  Female  14.0    CA        870.39         11823.74           770           True
2    Male   0.0    TX       3282.34          8564.79           605           True
3  Female  37.0    TX       4645.99         12826.76           608           True
4    Male   NaN    FL           NaN          3493.08           551          False
Run Code Online (Sandbox Code Playgroud)


Foz*_*oro 5

我建议您使用以下代码:

import pandas as pd
import requests
from io import StringIO

url = requests.get('https://doc-0g-78-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/5otus4mg51j69f99n47jgs0t374r46u3/1560607200000/09837260612050622056/*/0B6GhBwm5vaB2ekdlZW5WZnppb28?e=download')
csv_raw = StringIO(url.text)
dfs = pd.read_csv(csv_raw)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助