如何避免Colab中Pandas DataFrame列换行显示
解决Pandas DataFrame列自动换行到下方的问题
在Colab中运行以下代码创建DataFrame:
def daily_sma(): symbol = 'BTCUSDT' num_bars = 70 timeframe = '1d' bars = exchange.fetch_ohlcv(symbol, timeframe = timeframe, limit = num_bars) df_d = pd.DataFrame(bars, columns = ['timestamp', 'open', 'high', 'low', 'close', 'volume']) df_d['timestamp'] = pd.to_datetime(df_d['timestamp'], unit = 'ms') df_d['sma20_d'] = df_d.close.rolling(20).mean() df_d = df_d.dropna() return df_d
打印时,即使控制台空间充足,sma20_d列仍单独显示在主表下方:
timestamp open high low close volume \ 19 2022-09-29 19412.82 19645.52 18843.01 19591.51 406424.93256 20 2022-09-30 19590.54 20185.00 19155.36 19422.61 444322.95340 21 2022-10-01 19422.61 19484.00 19159.42 19310.95 165625.13959 22 2022-10-02 19312.24 19395.91 18920.35 19056.80 206812.47032 23 2022-10-03 19057.74 19719.10 18959.68 19629.08 293585.75212 sma20_d 19 19795.5145 20 19684.2280 21 19558.4320 22 19391.4850 23 19364.2605
仅设置pd.options.display.width = 0无法解决该问题,以下是可行的解决方法:
全局配置:强制所有列同行显示
修改Pandas的全局显示选项,解除列数和宽度限制,让所有列在同一行输出:import pandas as pd pd.options.display.max_columns = None pd.options.display.width = None该配置会影响后续所有DataFrame的打印效果,适合长期需要宽表显示的场景。
临时配置:仅针对当前DataFrame
若不想改变全局设置,可在打印时通过to_string()方法指定参数,仅对当前表格生效:print(df_d.to_string(max_columns=None, width=None))补充:避免列内容截断(可选)
如果部分列内容过长导致自动换行,可额外设置取消列内容截断:pd.options.display.max_colwidth = None
内容的提问来源于stack exchange,提问作者MUHAMMAD LABEEB
相关产品推荐
相关产品推荐

