在 pandas 中乘以 float 列需要太多时间
multiplying float columns in pandas takes too much time
大家早安,
我有一个 460.000 行的 DataFrame,有 15 列。我正在尝试将另外两列的乘积分配给一列
代码是这样的
df[df.colx == 'S']['prd'] = df['col1']*df['col2']
prd、col1 和 col2 的数据类型为 float64。
我在其他列上执行了很多操作都没有问题,包括日期差异,它们几乎是立即执行的。
如果我尝试
df['prd'] = df['col1']*df['col2']
执行速度超快。当我尝试在 DataFrame 的子集上应用操作时出现问题
有人可以帮我解释一下如何降低执行时间吗?
非常感谢!
更新:
如果如果做
df2 = pd.DataFrame(df[df.colx=='S'])
然后
df2['prd'] = df['col1']*df['col2']
还是超级慢.........
哦,这可能吗? df2 应该是一个新的DataFrame.......
尝试将操作分开:
df2 = df[df.colx == 'S']
df2['prd'] = df2['col1]*df2['col2']
或者如果 df.colx == 'S'
是您的某些条件,您可以 运行:
df['prd'] = numpy.where(df['prod'] == 'S', df['col1']*df['col2'], 'Do something else')
只需将 Do something else 替换为另一个符合逻辑的选项,如果 df.colx != 'S'
大家早安, 我有一个 460.000 行的 DataFrame,有 15 列。我正在尝试将另外两列的乘积分配给一列 代码是这样的
df[df.colx == 'S']['prd'] = df['col1']*df['col2']
prd、col1 和 col2 的数据类型为 float64。 我在其他列上执行了很多操作都没有问题,包括日期差异,它们几乎是立即执行的。 如果我尝试
df['prd'] = df['col1']*df['col2']
执行速度超快。当我尝试在 DataFrame 的子集上应用操作时出现问题 有人可以帮我解释一下如何降低执行时间吗? 非常感谢!
更新: 如果如果做
df2 = pd.DataFrame(df[df.colx=='S'])
然后
df2['prd'] = df['col1']*df['col2']
还是超级慢......... 哦,这可能吗? df2 应该是一个新的DataFrame.......
尝试将操作分开:
df2 = df[df.colx == 'S']
df2['prd'] = df2['col1]*df2['col2']
或者如果 df.colx == 'S'
是您的某些条件,您可以 运行:
df['prd'] = numpy.where(df['prod'] == 'S', df['col1']*df['col2'], 'Do something else')
只需将 Do something else 替换为另一个符合逻辑的选项,如果 df.colx != 'S'