Python Pandas - 剪贴板



在数据分析中,在不同应用程序之间复制和粘贴数据是一项常见任务。在这个剪贴板充当临时数据缓冲区,用于存储短期数据并在不同应用程序之间传输它。

Pandas 库提供了易于使用的工具来处理剪贴板。它提供了read_clipboard()to_clipboard() 方法,分别用于从剪贴板读取数据和将数据写入系统剪贴板。这些方法简化了 Pandas 数据结构与其他应用程序(如 Excel、文本编辑器或任何支持复制粘贴功能的工具)之间的数据传输。

如果您遇到pandas.errors.PyperclipException 错误,则可能需要安装xclipxsel 模块才能启用剪贴板功能。通常,WindowsmacOS 操作系统不需要这些模块。

在本教程中,我们将学习如何有效地使用 Pandas 的read_clipboard()to_clipboard() 方法。

使用 read_clipboard() 从剪贴板读取数据

pandas.read_clipboard() 方法用于直接将系统剪贴板中的数据导入 Pandas DataFrame。此方法解析剪贴板数据的方式类似于使用pd.read_csv() 方法解析 CSV 数据的方式。

pandas.read_clipboard() 方法的语法如下:

pandas.read_clipboard(sep='\\s+', dtype_backend=<no_default>, **kwargs)

其中:

  • sep:此参数用于定义字符串分隔符。默认设置为'\s+',它匹配一个或多个空格字符。

  • dtype_backend:用于选择后端数据类型。例如,“numpy_nullable”返回一个支持空类型的 DataFrame(默认值),而“pyarrow”返回一个 pyarrow 支持的空值 ArrowDtype DataFrame(在 Pandas 2.0 中引入)。

  • **kwargs**:传递给read_csv() 的其他关键字参数,用于微调数据读取。

示例:从剪贴板读取表格数据

这是一个使用pandas.read_clipboard() 方法从复制的数据生成 DataFrame 的基本示例。

首先,请使用Ctrl+cCommand-C 键盘快捷键将以下数据复制到剪贴板。

C1 C2 C3
X 1 2 3
Y 4 5 6
Z a b c

然后运行以下代码:

import pandas as pd

# Read clipboard content into a DataFrame
df = pd.read_clipboard()
print(df)

以下是上述代码的输出:

C1 C2 C3
X 1 2 3
Y 4 5 6
Z a b c

示例:从剪贴板读取非表格数据

以下是如何使用pandas.read_clipboard() 方法将剪贴板数据读取到 pandas DataFrame 的示例。

让我们将以下数据复制到剪贴板,然后运行以下程序:

Python,Pandas,Clipboard,DataFrame
import pandas as pd

# Read clipboard content into a DataFrame
df = pd.read_clipboard(sep=',',header=None)
print(df)

以下是上述代码的输出:

0 1 2 3
0 Python Pandas Clipboard DataFrame

使用 to_clipboard() 将数据写入剪贴板

to_clipboard() 方法用于将 DataFrame 或 Series 对象的内容写入系统剪贴板。这使得将数据粘贴到其他应用程序(如 Excel 或文本编辑器)变得很容易。

以下是to_clipboard() 方法的语法:

DataFrame.to_clipboard(*, excel=True, sep=None, **kwargs)

其中:

  • excel:这是一个布尔参数,如果设置为True,则将 DataFrame 格式化为 CSV,以便轻松粘贴到 Excel 中。如果为False,则将 DataFrame 格式化为字符串表示形式到剪贴板。

  • sep:定义字段分隔符。如果 sep=None,则默认为制表符 (\t) 分隔符。

  • **kwargs**:任何其他参数都将传递给 DataFrame.to_csv。

示例

这是一个使用DataFrame.to_clipboard() 将 DataFrame 复制到剪贴板并在其他地方(如文本编辑器)粘贴它的示例。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({
    "C1": [1, 2, 3], 
    "C2": [4, 5, 6], 
    "C3": ["a", "b", "c"]
}, index=["x", "y", "z"])

# Copies the DataFrame to the clipboard
df.to_clipboard(sep=',')
print('DataFrame is successfully copied to the clipboard. Please paste it into any text editor or Excel sheet.')

以下是上述代码的输出:

DataFrame is successfully copied to the clipboard. Please paste it into any text editor or Excel sheet.
,C1,C2,C3
x,1,4,a
y,2,5,b
z,3,6,c
广告