[英]Pandas: how can I use map on a column in a pandas dataframe to create a new column? Having trouble using a lambda function to do this
[英]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.