общий список списка выбора столбцов - PullRequest
1 голос
/ 07 июня 2019

У меня есть электронная таблица Google, подобная этой

A    B    C    D
0    1    2    3
4    5         7
8    9    8    7
6    5         3

Я могу получить все эти значения в виде списка списков и сохранить их в DataFrame, например:

import gspread
from oauth2client.service_account import ServiceAccountCredentials
import pandas as pd


scope=['my_scope']

credentials = ServiceAccountCredentials.from_json_keyfile_name('my_credentials', scope)

gc = gspread.authorize(credentials)

GsheetName = 'here_the_name_of_my_spreadsheet'
workSheetName = 'here_the_wsheet_name'

sht = gc.open(GsheetName)
wks = sht.worksheet(workSheetName)

get_values = wks.get_all_values()

df= pd.DataFrame(get_values)

так что df равно

   0    1    2    3
0  A    B    C    D
1  0    1    2    3
2  4    5    nan  7
3  8    9    8    7
4  6    5    nan  3

Я хотел бы сделать то же самое, но выбрать только столбцы B и D со значениями NAN, где ячейка пуста, например,

   0    1    
0  B    C    
1  1    2    
2  5    nan     
3  9    8    
4  5    nan     

Как я могу это сделать, не манипулируя df? Я хочу создать его непосредственно из значений электронной таблицы.

Метод get_all_values ​​() получает значения для всего листа, но мне нужны только некоторые столбцы и строки, и я не нашел, как определить диапазон с помощью этого метода или какой другой метод библиотеки позволяет это сделать.

1 Ответ

1 голос
/ 08 июня 2019
  • Вы хотите напрямую получить значения из "B: C", используя обозначение, как показано ниже.

    Input values: Values on Spreadsheet
    A    B    C    D
    0    1    2    3
    4    5         7
    8    9    8    7
    6    5         3
    
    Output values: Values you want to retrieve
       0     1
    0  1     2
    1  5  None
    2  9     8
    3  5  None
    
  • В своем вопросе вы сказали only selecting columns B and D with NAN values where the cell is empty.Но похоже, что ваши выходные значения являются значениями из столбцов «B» и «C».Поэтому я изменил, чтобы получить значения из столбцов «B» и «C».

Если мое понимание верно, как насчет этой модификации?

От:

get_values = wks.get_all_values()

Кому:

get_values = sht.values_get(range=workSheetName + '!B:C')['values']

Примечание:

  • Если вы не используете wks в своем скрипте, вы можете удалить wks = sht.worksheet(workSheetName).

Ссылка:

Если я неправильно понял ваш вопрос и этотбыл не тот результат, который вы хотите, я прошу прощения.

...