Может ли быть более простой способ использовать pandas read_clipboard для чтения Серии? - PullRequest
0 голосов
/ 03 января 2019

Иногда я хочу использовать read_clipboard для чтения Series es, и мне нужно было бы сделать:

pd.Series(pd.read_clipboard(header=None).values[:,0])

Так было бы неплохо, если бы был более легкий путь?

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

pd.read_clipboard()

И это все.

Но для Series это гораздо длиннее - одна строка.

Так есть ли более простой способ?

Что я не знаю?

Какой-нибудь секретный код?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Скопировать в буфер обмена:

1
2
3

Лучше было бы использовать squeeze=True в качестве аргумента.

pd.read_clipboard(header=None, squeeze=True)

0    1
1    2
2    3
Name: 0, dtype: int64

Что возвращает Series. Если вы хотите назвать серию, используйте параметр names:

pd.read_clipboard(header=None, squeeze=True, names=['mycol'])

0    1
1    2
2    3
Name: mycol, dtype: int64

На самом деле, read_clipboard использует pyperclip для чтения из буфера обмена и отправляет текст на read_table.

Читайте о поддерживаемых аргументах.

0 голосов
/ 03 января 2019

Я думаю, что самое простое - это удалить Series конструктор (read_clipboard вернуть здесь один столбец DataFrame), и потому что header равен None, всегда столбец равен 0:

s = pd.read_clipboard(header=None)[0]

Другое решение с DataFrame.squeeze для панд 0,20,0+ для преобразования одного столбца DataFrame в Series:

s = pd.read_clipboard(header=None).squeeze()
...