У меня есть CSV с примерно 11 м строк, которые я читаю в dask dataframe. Я пытаюсь создать новый столбец, который является результатом сценария if / then / else. У меня возникают проблемы с пониманием того, как заставить его работать, и не менее важно, чтобы он работал эффективно. Я новичок в пандах / дасках.
По сути, это то, что я пробовал: Вызов функции из события создания столбца. Это упрощенный пример того, что я пытался.
#var1 = 0
#var2 = 10
def find_situation:
If (var1 == 0 and var2 > 10):
print("Situation 1")
elif var1 == 0 and var2 < 10:
print("Situation 2")
else:
print("No Situation")
ddf['situation'] = ddf.apply(find_situation(ddf['ddfvar1'], ddf['ddfvar2']))
При таком подходе появляется сообщение об ошибке «ValueError: Истинное значение Series является неоднозначным. Используйте a.any () или a.all ().» * Разделы справки по этим действиям читаются какбудут рассмотрены какие-либо или все значения из строки анализируемых данных, а не значения, которые я передаю функции?
Кроме того, я прочитал, что векторизация выполняется намного быстрее, но я не уверен, чтоэто сценарий, в котором запрос может быть векторизованным ?
Длинная версия, где я просто пытаюсь определить значение в столбце месяца в качестве отправной точки. На самом деле мне нужно перейти к типу соединения, если я сделал заявления в упрощенном примере.: * 10101 *
import dask.dataframe as dd
import dask.multiprocessing
import dask.threaded
import pandas as pd
# Dataframes implement the Pandas API
import dask.dataframe as dd
def f(x):
if x == 9:
y = 'Nine'
elif x == 2:
y= 'Two'
else :
y= 1
return y
ddf['AndHSR'] = ddf.apply(f(ddf['Month']))