pandas.read_clipboard 只读取整行而不是列
pandas.read_clipboard only reads whole lines not columns
我将所有 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.
。第 3 行看起来像 "word1" "word2 and another" "word3" ...
。没有引号,您计算 11 个元素,在引号内,您计算 8 个。
下一步我尝试了
import pandas as pd
df = pd.read_clipboard(sep='\t')
我没有收到任何错误,但结果仅在一个系列中,剪贴板源的每一行都在一个元素中。
是的,也许在这一步之后编写代码来分隔一行的每个元素是一种解决方案,但因为它在 macOS 下运行良好(仅 pd.read_clipboard()
)我希望有更好的解决方案。
感谢您的帮助。
我为我的问题写了一个"turnaround"。这不是确切的解决方案,但因为我只需要数组中一列的元素,所以我这样解决了它:
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)
也许它对其他人也有帮助。
我将所有 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.
。第 3 行看起来像 "word1" "word2 and another" "word3" ...
。没有引号,您计算 11 个元素,在引号内,您计算 8 个。
下一步我尝试了
import pandas as pd
df = pd.read_clipboard(sep='\t')
我没有收到任何错误,但结果仅在一个系列中,剪贴板源的每一行都在一个元素中。
是的,也许在这一步之后编写代码来分隔一行的每个元素是一种解决方案,但因为它在 macOS 下运行良好(仅 pd.read_clipboard()
)我希望有更好的解决方案。
感谢您的帮助。
我为我的问题写了一个"turnaround"。这不是确切的解决方案,但因为我只需要数组中一列的元素,所以我这样解决了它:
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)
也许它对其他人也有帮助。