Dask позволяет вам использовать панды непосредственно для операций, которые являются построчными (например, такими) или могут применяться по одному разделу за раз.Помните, что фрейм данных Dask состоит из набора фреймов данных Pandas.
Для случая Pandas вы сделаете это, основываясь на связанных вопросах:
df = pd.DataFrame([["A", "Z,Y"], ["B", "X"], ["C", "W,U,V"]],
columns=['var1', 'var2'])
df.drop('var2', axis=1).join(
df.var2.str.split(',', expand=True).stack().reset_index(drop=True, level=1).rename('var2'))
, поэтому для Dask вы можете подать заявку в точноститот же метод через map_partitions
, потому что каждая строка не зависит от всех других.Возможно, это выглядело бы чище, если бы переданная функция была записана отдельно, а не как лямбда:
d = dd.from_pandas(df, 2)
d.map_partitions(
lambda df: df.drop('var2', axis=1).join(
df.var2.str.split(',', expand=True).stack().reset_index(drop=True, level=1).rename('var2')))
, если бы вы сделали .compute()
для этого, вы получите точно такой же результат, как и для случая Пандвыше.Скорее всего, вы не захотите вычислить ваш массивный фрейм данных за один раз, но выполните дальнейшую обработку на нем.