我试图实现一个自动执行此操作的函数:
del data['method_code']
del data['aqi']
del data['local_site_name']
del data['cbsa_name']
我有这个功能:
def del_data_func(data,columns):
data[columns] = data[columns].apply(lambda x: del(x))
return data
del_list = data.columns[['method_code','aqi','local_site_name','cbsa_name']]
del_data_func (data, del_list)
我如何以正确的方式实现它并避免出现任何错误:
data[columns] = data[columns].apply(lambda x: del(x))
SyntaxError: invalid syntax
答案 0 :(得分:3)
为什么不尝试这个?
data.drop(['method_code', 'aqi', 'local_site_name', 'cbsa_name'], axis=1, inplace=True)
只要列表中的元素是数据框中的有效列名,该列表实际上可以是任何列表。
答案 1 :(得分:1)
我不知道lambda
是否需要,否则一种方式是loop
:
如果df
是:
col1 col2 col3 col4 col5
0 1 1 1 1 1
1 2 2 2 2 2
2 3 3 3 3 3
3 4 4 4 4 4
4 5 5 5 5 5
然后,函数可以写成:
def del_data_func(data,columns):
for column_name in columns: del data[column_name]
现在,调用函数:
del_list = ['col2', 'col4']
del_data_func (data, del_list)
print(data)
输出:删除col2
和col4
后:
col1 col3 col5
0 1 1 1
1 2 2 2
2 3 3 3
3 4 4 4
4 5 5 5