我无法理解这行代码如何过滤pandas数据帧的行

时间:2016-11-11 02:57:50

标签: python pandas filter

我知道首先我要将csv文件的内容分配给数据帧,但我不明白lambda函数究竟做了什么来不选择值为'的行。无'在' Fat'柱。

data = pd.read_csv('data.csv',delimiter=';')

filtered_data = data[lambda row:row.Fat != 'None']

1 个答案:

答案 0 :(得分:4)

它正在使用数据框的selection by callable功能。您可以传递可调用的(例如函数)作为索引来选择子集。

lambda只是创建函数的简写,即。你也可以写:

def is_fat(row):
    return row.Fat != 'None'

并使用该函数进行索引:

filtered_data = data[is_fat]

正如您所看到的,lambda函数基本上会返回False'None'Fat的行,True