我有一个data
,我正试图将它存储在pandas
数据帧中。但是,它以一种奇怪的方式出现。我知道我做错了什么
有人能帮我找出毛病吗。你知道吗
代码
root@optstra:~# cat pandas_1.py
import pandas as pd
import numpy as np
numberOfRows = 1
SYMBOL = 'ABB'
volume_increasing = True
price_increase = True
OI_CHANGE = True
closedAboveYesterday = False
Above_22SMA = False
data_frame = pd.DataFrame(index=np.arange(0, numberOfRows), columns=('SYMBOL','Volume', 'Price', 'OI','OHLC','22SMA') )
for x in range(0,numberOfRows):
data_frame.loc[x] = [{SYMBOL,volume_increasing,price_increase,OI_CHANGE,closedAboveYesterday,Above_22SMA} for n in range(6)]
print(data_frame)
输出
root@optstra:~# python3 pandas_1.py
SYMBOL Volume Price OI OHLC 22SMA
0 {False, True, ABB} {False, True, ABB} {False, True, ABB} {False, True, ABB} {False, True, ABB} {False, True, ABB}
如果我改变将数据写入数据帧的行,如下所示
for x in range(0,numberOfRows):
data_frame.loc[x] = [(SYMBOL,volume_increasing,price_increase,OI_CHANGE,closedAboveYesterday,Above_22SMA) for n in range(6)]
输出更改为
root@optstra:~# python3 pandas_1.py
SYMBOL ... 22SMA
0 (ABB, True, True, True, False, False) ... (ABB, True, True, True, False, False)
Updating an empty frame (e.g. using loc one-row-at-a-time)效率低下。你知道吗
因此,更好/更快的方法是通过附加
DataFrame
构造函数来创建列表:list comprehension alternative
:在我看来,你没有很好地索引数据帧。您可以这样做:
这将为您提供所需的输出,或者您可以使用字典并完全避免for循环:
你为什么不试试这个呢?既然你在编辑中把这个角色拿出来了,你就不确定它是否正是你想要的:
输出:
相关问题 更多 >
编程相关推荐