Pandas 应用处理比现有数据框更多的行

Pandas Apply processing more rows than existing dataframe

我有一个非常简单的 Pandas 数据框,它的形状是 (140, 10) 但是当我使用时:

df.apply(lambda row: somefunction(row, otherparameter), axis=1)

它将数据帧上的第一行加倍,为了证明这一点,我在 somefunction 中使用了打印行。

我在 somefunction 中做的唯一奇怪的事情是向数据库中插入一条记录(但是打印在这条指令之前所以它与它无关或者我相信如此)。我不想使用 to_sql 函数是有原因的,但这是另一种选择。

当我检查应用线后的数据框形状时,形状仍然相同。

我想知道这可能的原因

它很可能比 "ordinary" apply 运行得慢, 但你可以尝试 iterrows()。类似于:

for ind, row in df.iterrows():
    somefunction(row, otherparameter)

iterrows 的第一个结果是当前行的索引。 如果您不需要它,请将 ind 替换为 _.