Python 如何跟Excel一样加一个筛选器,可以选其中一个类型和不选其中一个类型
df=pd.pivot_table(data11,values=['费用','经纪费金额','单号'],index=['产品名称'],columns=None,aggfunc={'单号':'count','费用':'sum','经纪费金额':'sum'}).reset_index()df.columns = ['产品名称', '经纪费金额','单号', '费用']
Python 如何跟Excel一样加一个筛选器,可以选其中一个类型和不选其中一个类型
在 Python 中实现类似 Excel 筛选器的功能,可以使用 pandas 的布尔索引。以下是两种常见的筛选方式:
import pandas as pd
# 假设您的 DataFrame 名为 df,且有一个名为“类型”的列
# 示例数据
data = {'类型': ['A', 'B', 'A', 'C', 'B'],
'数值': }
df = pd.DataFrame(data)
# 1. 选择类型为 'A' 的行(选其中一个类型)
selected_type = 'A'
filtered_df = df == selected_type]
print("筛选出类型为 A 的行:")
print(filtered_df)
# 2. 排除类型为 'A' 的行(不选其中一个类型)
filtered_df_exclude = df != selected_type]
print("\n排除类型为 A 的行:")
print(filtered_df_exclude)
您可以根据需要将 '类型' 和 selected_type 替换为实际的列名和值。如果有多条件筛选,可以使用 &(与)和 |(或)操作符组合条件。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 可以在我代码基础上加吗 冰菲 发表于 2026-01-27 09:41
可以在我代码基础上加吗
可以在您代码基础上添加筛选功能。这是完整示例:
import pandas as pd
# 假设您的原始数据已经存在
df = pd.pivot_table(data11,
values=['单号', '费用', '经纪费金额'],
index=,# 请替换为实际的索引列名
columns=None,
aggfunc={'单号':'count', '费用':'sum', '经纪费金额':'sum'}
).reset_index()
# 假设您的列名需要重新命名(请根据实际情况修改)
df.columns = # 请替换为实际的列名列表
# 现在添加筛选功能
# 假设您要根据某个列(比如"类型"列)进行筛选
# 1. 选择其中一个类型(比如类型"A")
filtered_selected = df
# 2. 不选其中一个类型(比如排除类型"A")
filtered_excluded = df
print("筛选出类型为 A 的行:")
print(filtered_selected)
print("\n排除类型为 A 的行:")
print(filtered_excluded)
# 如果要动态选择筛选条件
selected_type = input("请输入要筛选的类型:")# 或者设置为您需要的值
filtered_selected_dynamic = df
print(f"\n筛选出类型为 {selected_type} 的行:")
print(filtered_selected_dynamic)
请注意:
1. 请将代码中的 data11、index 和 df.columns 替换为您的实际变量和列名
2. 筛选时需要知道具体要筛选的列名(如示例中的"类型"列)
3. 如果您的数据中没有"类型"列,请替换为实际存在的列名
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 不对,都透视完了,还怎么筛选 冰菲 发表于 2026-01-27 09:43
不对,都透视完了,还怎么筛选
抱歉,我理解错了!在透视表之前就需要筛选数据。以下是正确的修改:
# 首先筛选原始数据,再创建透视表
# 假设要筛选的列名为“类型”
selected_type = 'A'# 要选择的类型
# 1. 筛选出类型为'A'的数据
filtered_data = data11 == selected_type]
# 2. 排除类型为'A'的数据
excluded_data = data11 != selected_type]
# 对筛选后的数据创建透视表
df_selected = pd.pivot_table(filtered_data,
values=,
index=,
columns=None,
aggfunc={'单号':'count', '费用':'sum', '经纪费金额':'sum'}
).reset_index()
df_excluded = pd.pivot_table(excluded_data,
values=,
index=,
columns=None,
aggfunc={'单号':'count', '费用':'sum', '经纪费金额':'sum'}
).reset_index()
# 如果需要同时满足多个条件,可以使用以下方式:
# 选择类型为'A'或'B'的数据
filtered_data_multi = data11.isin(['A', 'B'])]
# 排除类型为'A'和'B'的数据
excluded_data_multi = data11[~data11['类型'].isin(['A', 'B'])]
# 如果需要更复杂的筛选,可以使用query方法:
filtered_data_query = data11.query("类型 == 'A' and 费用 > 1000")
# 设置列名
df_selected.columns = # 设置列名
df_excluded.columns = # 设置列名
这样,您就可以在创建透视表之前先筛选数据,然后对筛选后的数据进行透视分析。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]