制作删除功能

时间:2017-07-08 00:18:10

标签: python-3.x pandas

我试图实现一个自动执行此操作的函数:

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

2 个答案:

答案 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)

输出:删除col2col4后:

   col1  col3  col5
0     1     1     1
1     2     2     2
2     3     3     3
3     4     4     4
4     5     5     5