【发布时间】:2020-10-02 05:03:12
【问题描述】:
我想将大约 50,000 列与大型 dask 数据帧 (6_500_000 x 50_002) 中的另一列相乘。使用 for 循环的解决方案可以工作,但速度非常慢。下面我尝试了另外两种失败的方法。任何建议表示赞赏。
熊猫
import pandas as pd
df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]})
df[['a','b']].multiply(df['c'], axis="index")
黎明
import dask.dataframe as dd
ddf = dd.from_pandas(df, npartitions=1)
# works but very slow for large datasets:
for column in ['a', 'b']:
ddf[column] = ddf[column] * ddf['c']
# don't work:
ddf[['a','b']].multiply(ddf['c'], axis="index")
ddf[['a', 'b']].map_partitions(pd.DataFrame.mul, other=ddf['c'] ).compute()
【问题讨论】: