簡體   English   中英

如何在for循環中生成Python lambda過濾代碼?

[英]How to generate the Python lambda filter codes in the for loop?

我是 Python lambda 的初學者。 並嘗試將 Python for loop 轉換為 lambda 表達式。 首先,我想解釋一下 for 循環行。

fred = Fred2Hdfs() # construct the python imported objects

for i, state in enumerate(us_states):
    df_unemployee_annual = fred.getFredDF('A', state, 'search_text')  # generate dataframe from the object
    if df_unemployee_annual is None:
        continue
    
    if i == 0:
        fred.writeCsv2Hdfs('unemployee_annual.csv', df_unemployee_annual)  # write dataframe 
    else:
        fred.appendCsv2Hdfs('unemployee_annual.csv', df_unemployee_annual)  # append dataframe

上面的代碼成功運行,沒有錯誤。 下面的代碼是我嘗試轉換的 Python lambda 代碼。

fred = Fred2Hdfs()

freq='A'
str='search_text'
result_df_list = list(map(lambda state: fred.getFredDF(freq, state, str), us_states))
result_df_list = list(filter(lambda df: df is not None, result_df_list))
print(result_df_list)  # codes work correctly until this line.
#func=map(lambda df:fred.writeCsv2Hdfs('unemployee_annual_.csv', df) , result_df_list)

我堅持if i==0: for 循環中的行。 如何從if i==0:行制作適當的 Python lambda 表達式。 恐怕我不知道如何實現 Python lambda 的 if 過濾器。

map(lambda (i,df):fred.writeCsv2Hdfs('unemployee_annual_.csv', df) if i == 0 else fred.appendCsv2Hdfs('unemployee_annual_.csv', df) , enumerate(result_df_list))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM