[英]apply lambda or define a function to return 1 else 0 in dask dataframe
可能很容易,但我仍在學習。
我在 dask dataframe 中創建一個新列,在提取 str ddmmyyyy 中date
列的最后四個 str 字符后,該值將來自該列。 我做了什么:
問題:如何在更少的行中編寫有效的 function 或更好的 a lambda function
def valid_yr(x):
inv_years = ['1921','1969','2026','2030','2041','2060','2062']
validity_year = ddf['string_ddmmyyyy'].str[-4:] #extract the last four to get the year
if validity_year.isin(inv_years):
x = 1
else:
x = 0
return x
#create a new column and apply function
ddf['validity_year']= ??? # what to write here?
我能想到的一個非常脾氣暴躁的方法是
inv_years = ['1921','1969','2026','2030','2041','2060','2062']
ddf['validity_year'] = ddf.apply(lambda row: 1 if row.string_ddmmyyyy[-4:] in inv_years else 0, axis=1)
或者為了嘗試讓您的方法發揮作用,我們最初對您的 function 進行了一些修改,因為它的參數是一行。
def valid_yr(row):
inv_years = ['1921','1969','2026','2030','2041','2060','2062']
validity_year = row.string_ddmmyyyy[-4:]
if validity_year in inv_years:
x = 1
else:
x = 0
return x
現在我們可以將這個 function 應用於所有行。
ddf['validity_year'] = ddf.apply(valid_yr, axis=1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.