要按照一个特征、多个条件对pandas DataFrame进行分组查询,并将结果输出为列表,可以使用pandas的groupby函数和apply函数。
下面是一个示例代码:
import pandas as pd
# 创建示例DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'John'],
'Age': [20, 21, 22, 20, 22],
'City': ['New York', 'Paris', 'London', 'New York', 'London'],
'Score': [90, 85, 95, 80, 90]}
df = pd.DataFrame(data)
# 按照'Name'和'City'分组,计算每个分组的平均年龄和平均分数
grouped = df.groupby(['Name', 'City']).apply(lambda x: pd.Series({'Average Age': x['Age'].mean(), 'Average Score': x['Score'].mean()}))
# 将分组结果转换为列表
result = grouped.reset_index().values.tolist()
print(result)
输出结果:
[['John', 'London', 22.0, 90.0], ['Nick', 'Paris', 21.0, 85.0], ['Tom', 'New York', 20.0, 85.0]]
在上面的示例中,我们按照'Name'和'City'两个特征对DataFrame进行分组。然后使用apply函数对每个分组进行操作,计算每个分组的平均年龄和平均分数。最后使用reset_index函数重置索引,并将结果转换为列表。