有什么方法可以将python pandas数据帧发布到松弛状态?

aar*_*ron 7 python pandas slack

如何将pandas数据框导出为松弛?

df.to_json()似乎是一个潜在的候选者,再加上松弛的传入webhook,但是解析消息显示为一个漂亮的降价/ html-ized表对我来说并不明显.

长时间听众,第一次打电话的人,请放轻松对我说...

Bob*_*ley 8

有一个。to_markdown() 方法在 DataFrames 上,因此可能会起作用。但如果你只是想剪切和粘贴,Tabulate是一个不错的选择。从文档:

from tabulate import tabulate
df = pd.DataFrame([["Name","Age"],["Alice",24],["Bob",19]])
print tabulate(df, tablefmt="grid")
Run Code Online (Sandbox Code Playgroud)

退货

+---+-------+-----+
| 0 | Name  | Age |
+---+-------+-----+
| 1 | Alice | 24  |
+---+-------+-----+
| 2 | Bob   | 19  |
+---+-------+-----+
Run Code Online (Sandbox Code Playgroud)

将其粘贴到 Slack 中的代码块中,它应该会很好地显示出来。


Ent*_*Zha 5

Slack 似乎不接受任意 HTML 输入或格式化文本,并带有限制为纯文本的转义换行符。tabulate正如另一个答案中所建议的那样,但是如果您想要自包含的东西,这将起作用。假设您的数据框在df

  1. 在 python 终端会话、jupyter notebook 或 print 语句中运行类似print(repr(df)).
  2. 复制输出
  3. 在 slack 中粘贴代码块。

对于我手头的数据框,这是您在按 Enter 键之前会在松弛聊天框中输入的内容。

```
   code    sid state        triplet
0  SCAN   2057    AL   2057:AL:SCAN
1  SNOW    ABY    CA    ABY:CA:SNOW
2  SNOW  15A21    MT  15A21:MT:SNOW
3  COOP   0010    ID   0010:ID:COOP
4  SNOW  1F01A    BC  1F01A:BC:SNOW
```
Run Code Online (Sandbox Code Playgroud)

如果您想将其集成为 Web 服务,请使用 Web 服务/挂钩替换复制/粘贴内容。