如何将列表作为n附加到pandas数据帧

2024-06-07 06:33:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个^{}来记录每个事务记录。在

以下是我创造的:

def create_blotter():
    blotter = []
    return blotter

def create_blotter_columns():
    columns = ['Buy|Sell', 'Ticker', 'Volume', 'PricePerShare', 'Timestamp', 'TotalCosts']
    return columns


class Ledger:

    _blotter = create_blotter()
    _blotter_columns = create_blotter_columns()

    def update_blotter(self, side, ticker, quantity, price, timestamp, transaction):
    columns = self._blotter_columns
    line = [side, ticker, quantity, price, timestamp, transaction]
    self._blotter.append(line)
    self._blotter = pd.DataFrame(self._blotter, columns=columns)
    self._blotter.sort_index(ascending=False)
    return self._blotter

我这样做的原因是,当我按如下方式创建吸墨器和列时,它将返回元组,因此我无法向其中添加新的列表行。在

^{pr2}$

总之,第一个代码第一次运行,但返回错误消息:

RuntimeWarning: '<' not supported between instances of 'str' and 'int', sort order is undefined for incomparable objects
  result = result.union(other)

我不明白它第一次是怎么工作的,第二次却返回这样的错误。该列表应该能够处理任何类型的数据。在

我的目标是记录所有事务记录并将它们聚合为line,并将其附加到blotter中,最后显示每个事务记录。在

示例数据如下:

side = 'Buy'
ticker = 'AAPL'
quantity = 100
price = 100
timestamp = "2018-02-27 23:12:50"
transaction = 100000

每个事务都将创建带有时间戳的新值。在


Tags: columnsselfreturndefcreate记录line事务
1条回答
网友
1楼 · 发布于 2024-06-07 06:33:31

您可以使用pandas.Dataframe.append()

代码:

blotter.append(
    dict(zip(columns, (side, ticker, quantity, price, timestamp, transaction))),
    ignore_index=True).set_index('Timestamp').sort_index(ascending=False)

测试代码:

^{pr2}$

结果:

                    Side Ticker  Volume  PricePerShare  TotalCosts
Timestamp                                                         
2018-02-27 23:12:50  Buy   AAPL   100.0          100.0    100000.0

相关问题 更多 >