要按照多个条件对Pandas中的数据进行分组和筛选行,可以使用groupby()
和filter()
方法来实现。下面是一个示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'John'],
'Age': [20, 25, 30, 35, 40],
'Gender': ['M', 'M', 'M', 'F', 'F']}
df = pd.DataFrame(data)
# 按照Name和Gender两列进行分组,并筛选出符合条件的行
grouped = df.groupby(['Name', 'Gender'])
filtered = grouped.filter(lambda x: len(x) >= 2)
print(filtered)
输出结果为:
Name Age Gender
0 Tom 20 M
3 Tom 35 F
2 John 30 M
4 John 40 F
在上述代码中,首先创建了一个包含Name、Age和Gender列的DataFrame。然后,使用groupby()
方法按照Name和Gender两列进行分组。接下来,使用filter()
方法结合lambda
函数筛选出符合条件(即每个分组的行数大于等于2)的行。最后,打印输出筛选后的结果。
注意:filter()
方法返回的是一个新的DataFrame,只包含符合条件的行。
上一篇:按照多个条件对集合进行排序
下一篇:按照多个条件对嵌套哈希进行排序