这可能是一个愚蠢的问题,但我有点坚持这个问题。假设我有这个数据框:
amount amount_str buy_order_id id midprice price
0 0.01545000 0.01545000 915692220 53424450 0.1286495 0.12947460
0 1.65956203 1.65956203 915692330 53424458 NaN 0.12947460
0 0.68427900 0.68427900 915692581 53424487 NaN 0.12947460
0 0.22306417 0.22306417 915692632 53424491 NaN 0.12808629
0 0.22306396 0.22306396 915692964 53424530 NaN 0.12808646
0 2.31474046 2.31474046 915693081 53424535 NaN 0.12947460
0 0.16808924 0.16808924 915694097 53424600 NaN 0.12808675
0 5.30166589 5.30166589 915694819 53424629 NaN 0.12808710
price_str sell_order_id timestamp type
0 0.12947460 915690988 1518045004 0
0 0.12947460 915690988 1518045006 0
0 0.12947460 915690988 1518045010 0
0 0.12808629 915692647 1518045010 1
0 0.12808646 915693012 1518045016 1
0 0.12947460 915690988 1518045017 0
0 0.12808675 915694117 1518045031 1
0 0.12808710 915694862 1518045041 1
这是我的问题:每次程序从 bitstamp 获取新订单时,它都会将值附加到此数据帧,然后添加当前的中间价格。
我通常可以使用 df['midprice'] = value 来做到这一点;但是,这会为整个列设置它,而不仅仅是该条目。
我该如何制作才能将其添加到每行而不是整个列?
谢谢!
最佳答案
Pandas 擅长矢量化计算。
因此,df['midprice'] = value
将整个系列(或列)设置为固定值。
您似乎只想在另一个进程添加一行后立即修改最后中间价格值。这是实现这一目标的一种方法:
df.iloc[-1, df.columns.get_loc('midprice')] = value
关于python - Pandas 不小心设置了整列,而不是行的最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48674905/