如何使用python在telegram bot中显示数据帧表



我正在使用python做股票市场价格机器人项目。所以我想显示顶级赢家和顶级输家列表后,用户点击按钮顶级赢家或输家。所以我使用pandas dataframe来显示使用抓取的表赢家url。在pycharm和jupyter notebook中,它是打印表格的。但是当我尝试在电报机器人上使用

打印它之后
import telegram
import pandas as pd
url = 'https://www.moneycontrol.com/markets/global-indices/'
response = requests.get(url)
print(response)
market = pd.read_html(url)
new_market = market[0]
new_market2 = new_market[['Name','Current Value','%Change']]
update.message.reply_text(new_market2.to_markdown())

它不是给我在数据框架表格式。如何在电报机器人上以适当的格式显示这个new_market数据框。

我刚刚找到一个很好的工具来满足这个需求,它叫做tabulate。

它打印表格数据并与DataFrame一起工作。

from tabulate import tabulate
import pandas as pd
df = pd.DataFrame({'col_two' : [0.0001, 1e-005 , 1e-006, 1e-007],
                   'column_3' : ['ABCD', 'ABCD', 'long string', 'ABCD']})
print(tabulate(df, headers='keys', tablefmt='psql'))
+----+-----------+-------------+
|    |   col_two | column_3    |
|----+-----------+-------------|
|  0 |    0.0001 | ABCD        |
|  1 |    1e-05  | ABCD        |
|  2 |    1e-06  | long string |
|  3 |    1e-07  | ABCD        |
 bot.send_message(chat_ids, f'<pre>{table}</pre>', parse_mode=ParseMode.HTML)

最新更新