pandas.read_clipboard仅读取整行,而不读取列

时间:2019-01-11 08:44:44

标签: python-3.x pandas clipboard ubuntu-18.04

我将所有python3代码从macOS转移到了Ubuntu 18.04,在一个程序中,我需要使用 pandas.clipboard() 。此时,剪贴板中存在一个列表,其中有多行和多行,各行由各标签分开,每个元素都用引号引起来。

刚尝试

import pandas as pd
df = pd.read_clipboard()

我收到此错误:pandas.errors.ParserError: Expected 8 fields in line 3, saw 11. Error could possibly be due to quotes being ignored when a multi-char delimiter is used.。第三行看起来像"word1" "word2 and another" "word3" ...。不带引号的情况下,您可以计算11个元素,而带引号的情况下则可以计算8个元素。

下一步我尝试了

import pandas as pd
df = pd.read_clipboard(sep='\t')

而且我没有收到任何错误,但是它只在系列中将剪贴板源的每一行包含在一个元素中,结果

是的,也许这是在此步骤之后编写用于分隔行的每个元素的代码的解决方案,但是因为它在macOS(仅使用pd.read_clipboard()的情况下运行良好),希望有更好的解决方案。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我为问题写了一个“周转”。 不是确切的解决方案,但是因为我只需要数组中一列的元素,所以我这样解决了它:

import pyperclip

# read clipboard
cb = pyperclip.paste()

# lines in array
cb_arr = cb.splitlines()

column = []

for cb_line in cb_arr:

    # words in array
    cb_words = cb_line.split("\"")

    # pick element of column 1
    word = cb_words[1]

    column.append(word)

# delete column name
column.pop(0)

print(column)

也许对其他人也有帮助。