簡體   English   中英

如何使用Lambda刪除熊貓數據框的列?

[英]How can I use lambda to drop column of pandas dataframe?

我從網上看到的代碼如下:

train_df = train_df.drop(['Ticket', 'Cabin'], axis=1)
test_df = test_df.drop(['Ticket', 'Cabin'], axis=1)

但是我想使其更短,所以我嘗試編寫如下代碼:

train_df,test_df=lambda x:x.drop(['Ticket','Cabin'],axis=1)

我得到錯誤:

TypeError:“函數”對象不可迭代

我想知道是否可以像我一樣使用lambda,或者第一個編碼已經是最好的編碼了?

因此,我可以看到想要這樣的邏輯。 在這種情況下,我會這樣做:

#put your dataframes into a tuple
dfs = (train_df, test_df)

可能真的很容易迭代,只是為了節省鍵入,如果您想向流程添加更多的數據框

dfs = map(lambda x: x.drop(['Ticket','Cabin'], axis=1), dfs)

它將完全按照您的意願進行。

請注意,如果您使用的是Python3,則map是惰性的,因此這樣做會更容易(通常也更Pythonic):

dfs = [x.drop(['Ticket','Cabin'], axis=1) for x in dfs]

為了完整起見,出現錯誤的原因是因為:

train_df,test_df=lambda x:x.drop(['Ticket','Cabin'],axis=1)

只是一個函數,不會在您的數據幀上進行迭代。

暫無
暫無

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

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