3 回答

TA贡献1877条经验 获得超1个赞
更新一个空帧(例如使用 loc 一次一行)是低效的。
所以更好/更快的是通过附加DataFrame构造函数来创建列表:
data = []
for x in np.arange(numberOfRows):
row = [SYMBOL,volume_increasing,price_increase,OI_CHANGE,closedAboveYesterday,Above_22SMA]
data.append(row)
c = ('SYMBOL','Volume', 'Price', 'OI','OHLC','22SMA')
data_frame = pd.DataFrame(data, columns=c)
list comprehension alternative:
data = [[SYMBOL,volume_increasing,price_increase,OI_CHANGE,closedAboveYesterday,Above_22SMA] for x in np.arange(numberOfRows)]

TA贡献2036条经验 获得超8个赞
你为什么不试试这个——不确定它是否正是你要找的东西,因为你在编辑中去掉了这部分:
for x in range(0,numberOfRows):
data_frame.loc[x] = [SYMBOL,volume_increasing,price_increase,OI_CHANGE,closedAboveYesterday,Above_22SMA]
输出:
SYMBOL Volume Price OI OHLC 22SMA
0 ABB True True True False False

TA贡献1799条经验 获得超8个赞
在我看来,您并没有完全正确地索引数据框。你可以这样做:
for x in range(0, numberOfRows):
data_frame['SYMBOL'][x] = SYMBOL
data_frame['Volume'][x] = volume_increasing
data_frame['Price'][x] = price_increase
data_frame['OI'][x] = OI_CHANGE
data_frame['OHLC'][x] = closedAboveYesterday
data_frame['22SMA'][x] = Above_22SMA
这将为您提供所需的输出,或者您可以使用字典并完全避免 for 循环:
columns = ['SYMBOL','Volume', 'Price', 'OI','OHLC','22SMA']
data = {'SYMBOL': 'AAB',
'Volume': True,
'Price': True,
'OI': True,
'OHLC': False,
'22SMA': False}
data_frame = pd.DataFrame(data=data, index=np.arange(0, 1), columns=columns)
添加回答
举报