Начало публикации c Google листов в качестве панды данных - PullRequest
0 голосов
/ 25 марта 2020

Я пытался получить лист Statewise из этой публикации c googlesheet ссылка как python фрейм данных.

URL этого листа отличается от URL других примеров для достижения цели получения листа в виде фрейма данных, который можно увидеть на этом сайте.

URL-адрес: https://docs.google.com/spreadsheets/d/e/2PACX-1vSc_2y5N0I67wDU38DjDh35IZSIS30rQf7_NYZhtYYGU1jJYT6_kDx4YpF-qw0LSlGsBYP8pqM_a1Pd/pubhtml#

Одним из стандартных способов может быть следующий

import pandas

googleSheetId = '<Google Sheets Id>'
worksheetName = '<Sheet Name>'
URL = 'https://docs.google.com/spreadsheets/d/{0}/gviz/tq?tqx=out:csv&sheet={1}'.format(
    googleSheetId,
    worksheetName
)

df = pandas.read_csv(URL)
print(df)

Но в Настоящий URL Я не вижу структуры, используемой здесь. Может кто-то помочь уточнить. Благодаря.

Ответы [ 2 ]

2 голосов
/ 25 марта 2020

Электронная таблица Google на самом деле html. Поэтому вы должны использовать read_html, чтобы загрузить его в список pandas данных:

dfs = pd.read_html(url, encoding='utf8')

, если доступно l xml или, если вы используете BeautifulSoup4:

dfs = pd.read_html(url, flavor='bs4', encoding='utf8')

Вы получите список фреймов данных, например, dfs[0]:

     0   1                                                  2                3
0    1  id                                             Banner  Number_Of_Times
1    2   1  Don't Hoard groceries and essentials. Please e...                2
2    3   2  Be compassionate! Help those in need like the ...                2
3    4   3  Be considerate : While buying essentials remem...                2
4    5   4  Going out to buy essentials? Social Distancing...                2
5    6   5  Plan ahead! Take a minute and check how much y...                2
6    7   6  Plan and calculate your essential needs for th...                2
7    8   7  Help out the elderly by bringing them their gr...                2
8    9   8  Help out your workers and domestic help by not...                2
9   10   9  Lockdown means LOCKDOWN! Avoid going out unles...                1
10  11  10           Panic mode : OFF! ❌ESSENTIALS ARE ON! ✔️                1
11  12  11  Do not panic! ❌ Your essential needs will be t...                1
12  13  12  Be a true Indian. Show compassion. Be consider...                1
13  14  13  If you have symptoms and suspect you have coro...                1
14  15  14  Stand Against FAKE News and WhatsApp Forwards!...                1
15  16  15  If you have any queries, Reach out to your dis...                1
0 голосов
/ 25 марта 2020

Вы можете использовать следующий фрагмент:

from io import BytesIO
import requests

r = requests.get(URL)
data = r.content

df = pd.read_csv(BytesIO(data), index_col=0, error_bad_lines=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...