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 替换为 _.
我有一个非常简单的 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 替换为 _.