当我使用 prettytable 打印表格时,我没有进入单列

Posted

技术标签:

【中文标题】当我使用 prettytable 打印表格时,我没有进入单列【英文标题】:When I print a table using prettytable, I am not getting in single column 【发布时间】:2021-09-09 23:22:04 【问题描述】:

可以帮助我吗?每次打印时,我都无法在单列中打印它在不同的列中打印

from prettytable import PrettyTable
import pandas as pd
for filename in os.listdir('Nse_Histrocial_Data'):
#print(filename)
symbol = filename.split(".")[0]
#print(symbol)
df = pandas.read_csv('Nse_Histrocial_Data/'.format(filename))
if df.empty:
    continue

df['20sma'] = df['Close'].rolling(window=20).mean()
df['stddev'] = df['Close'].rolling(window=20).std()
df['lower_band'] = df['20sma'] - (2 * df['stddev'])
df['upper_band'] = df['20sma'] + (2 * df['stddev'])

df['TR'] = abs(df['High'] - df['Low'])
df['ATR'] = df['TR'].rolling(window=20).mean()

df['lower_keltner'] = df['20sma'] - (df['ATR'] * 1.5)
df['upper_keltner'] = df['20sma'] + (df['ATR'] * 1.5)

def in_squeeze(df):
    return df['lower_band'] > df['lower_keltner'] and df['upper_band'] < df['upper_keltner']

df['squeeze_on'] = df.apply(in_squeeze, axis=1)

if df.iloc[-2]['squeeze_on'] and not df.iloc[-1]['squeeze_on']:
    data = ("".format(symbol))
    myTable = PrettyTable(['Stock'])
    myTable.add_row([data])
    print(myTable)

图片:https://i.stack.imgur.com/Evnr4.png

【问题讨论】:

请修正你的缩进。 您的缩进有问题。据我所知,从symbol = filename.split(".")[0]print(myTable) 的所有内容都在for 循环中,对吗?如果是这种情况,您正在为每个循环初始化表。尝试在循环外初始化表格并在循环结束后打印它 当我在循环外打印时。我只得到最后一行作为输出而不是填充列表 --- 谢谢 正如我所说,您还需要在循环外初始化表格 【参考方案1】:

是的,我也在努力寻找可以帮助我运行网站的正确代码,您可以在此处查看我当前代码的详细信息。

【讨论】:

首先得到答案 myTable = PrettyTable(['Stock']) 必须移出循环,然后 print 必须与 for 循环完全对齐。然后它将打印在单列中

以上是关于当我使用 prettytable 打印表格时,我没有进入单列的主要内容,如果未能解决你的问题,请参考以下文章

Python PrettyTable:在表格标题上方添加标题

如何从漂亮表中保存表格?

从 PrettyTable 到 pdf 的表格

python 用 prettytable 输出漂亮的表格

python模块——PrettyTable

输出美观的文本化表格 prettytable