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