第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 lambda 應用于每個數(shù)據(jù)框行以便測試兩個條件?

如何將 lambda 應用于每個數(shù)據(jù)框行以便測試兩個條件?

HUWWW 2023-02-15 16:13:57
我有一個包含兩列的數(shù)據(jù)集:在第一列中,是文件的完整目錄路徑。在第二列中,文件的最后修改日期。我試圖計算每個上層文件夾(“狗”、“貓科動物”、“老鼠”、“食蟻獸”)中最后修改時間晚于 2004 年 6 月 23 日的文件數(shù)。最終,我想要這樣的東西:這是我的數(shù)據(jù)集:import pandas as pddata = {'FullName': ["dog\cat\cow\rover.doc","feline\cat\cow\digger.doc","dog\cat\cow\whatamess.doc","mouse\cat\mouse\jude.doc","anteater\cat\mouse\sam.doc","dog\cat\owl\audrey.doc",], 'LastWriteTime': ['2003-01-02', '2004-01-02', '2005-01-02','2006-01-02','2007-01-02','2008-01-02']}df1 = pd.DataFrame(data)我可以計算上層文件夾在數(shù)據(jù)集中重復出現(xiàn)的次數(shù):df2 = (df1['FullName'].apply(lambda x: x.split('\\')[0]).value_counts()我還可以計算日期大于“2004-06-23”的文件在數(shù)據(jù)集中重復出現(xiàn)的次數(shù):df3 = df1['LastWriteTime'].apply(lambda x: pd.to_datetime((x),yearfirst=True) > pd.to_datetime('2004-06-23',yearfirst=True)).value_counts()我嘗試將它們組合如下:df2 = (df1['FullName'].apply(lambda x: x.split('\\')[0]) & pd.to_datetime((x),yearfirst=True) > pd.to_datetime('2004-06-23',yearfirst=True)).value_counts()但我得到錯誤代碼:x is not defined有誰知道如何組合它們?
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

您只能使用表達式。請參閱 python文檔。


只需將它括在括號中,python 解釋器就會很高興。


lambda x: (x.split('\\')[0]) & (pd.to_datetime(x, yearfirst=True) > pd.to_datetime('2004-06-23',yearfirst=True)))

但是,您正在將函數(shù)應用于相應的表“LastWriteTime”和“FullName”,函數(shù)更適合。創(chuàng)建多個評估函數(shù)并將其與相應的鍵存儲在字典中,并傳遞給 aggregate()。


def check_date(x):

    return pd.to_datetime(x) > pd.to_datetime('2004-06-23', yearfirst=True)



def files_count(x):

    return x.split('\\')[0]



df1 = pd.DataFrame(data)


func_dict = {'FullName': files_count, 'LastWriteTime': check_date}


df4 = df1.aggregate(func_dict)  # applying multiple function to multiple columns

print(df4, end='\n'*2)


# use df[df['a']] & df[df['b']] for filtering.

df3_filtered = df4[df4['LastWriteTime']]  # filtering.

print(df3_filtered, end='\n'*2)


df2 = df3_filtered['FullName'].value_counts()  # counting.

print(df2)

結果:


   FullName  LastWriteTime

0       dog          False

1    feline          False

2       dog           True

3     mouse           True

4  anteater           True

5       dog           True


   FullName  LastWriteTime

2       dog           True

3     mouse           True

4  anteater           True

5       dog           True


dog         2

anteater    1

mouse       1

Name: FullName, dtype: int64


查看完整回答
反對 回復 2023-02-15
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號