【问题标题】:(Python) manually copy/paste data from pandas table without copying the index(Python) 从 pandas 表中手动复制/粘贴数据而不复制索引
【发布时间】:2020-09-14 21:57:48
【问题描述】:

我一直在四处寻找,但找不到类似的帖子,所以我想试试看。 我编写了一个 pandas 程序,它成功地在 tkinter 文本框中以 pandas 表格格式显示了结果数据框。目的是用户可以选择数据并将其复制/粘贴到(现有)Excel工作表中。这样做时,索引也总是被复制。我想知道是否可以以编程方式选择除索引之外的完整表? 我知道可以使用 index=false 保存到 excel 或其他,但我找不到一种 df.select....index=false。我希望我的解释或多或少清楚;-) 非常感谢 screenshot

【问题讨论】:

  • 嗨,Serge,如果您提供一个最小的工作示例(python 代码),那些愿意帮助您的人可以简单地修改以指出解决方案,这将很有帮助。
  • 我添加了一个截图。如果我从左上角到右下角手动选择单元格并将它们复制粘贴到 Excel,索引也会被粘贴。所以我想知道是否有办法编写一些代码来选择和复制这个表,这样我就可以在没有索引列的情况下将它粘贴到 Excel。我尝试使用 mytable.selectAll() 但结果是一样的。跨度>

标签: python pandas


【解决方案1】:

您可以使用数据框的“to_string”函数,在这里您可以将“index = False”作为参数之一传递。例如:假设我们有这个 df:

import pandas as pd df = pd.DataFrame({'a': ['yes', 'no', 'yes' ], 'b': [10, 5, 20]}) print(df.to_string(index = False))

这会给你:

a    b
yes  10
no   5
yes  20

希望这会有所帮助!

【讨论】:

  • 谢谢。我一开始就这样做了。问题是输出(我在 tkinter 文本小部件中显示它)没有分隔符,所以如果我将它粘贴到 excel 中,所有内容都在一个单元格中。所以我需要对列做一个文本,我正在寻找一个解决方案,让用户可以尽可能地进行操作
【解决方案2】:

我终于找到了。 我没有使用 self.mytable.copy('columns') 之类的东西来选择所有内容然后切换到 Excel 并粘贴它,而是使用这行代码来满足我的需要:

df.to_clipboard(sep="\t", index=False)

sep="\t" 使其在 Excel 中的列中拆分。

希望有人可以在某个阶段使用它。

【讨论】:

  • 你能把你的答案标记为解决方案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 1970-01-01
相关资源
最近更新 更多