大家好 在使用 pandas 进行数据处理时 想实现类似中 在列标题上对表格数据进行筛选的功能
经过可以通过尝试 pandas.DataFrame.loc 函数实现,参数为 boolean array
boolean array 可以通过 DataFrame[ColumnIndexName]的 Series 的数值比较 或者 Series.str 的 contains 、startswith 、endswith 等方法获取
这取决于 DataFrame[ColumnIndexName]的 value 为数值还是 字符串,当然字符串也支持 "=="运算符,Series.str 部分方法也可支持正则表达式 使用更灵活
如果 pandas.DataFrame 想进行 多列的筛选是否 必须分步进行,不知道是否有更好的筛选方法 可以实现一步多列筛选数据
pandas.DataFrame result 实例如下 :
code code_name
0 sh.000001 上证综合指数
1 sh.000001 上证 A 股指数
2 sz.000001 上证 B 股指数
3 sh.000002 上证综合指数
4 sz.000002 上证 A 股指数
5 sz.000002 上证 B 股指数
分步筛选代码实例:
pat1 = "sz"
pat2 = "B"
result = result.loc[(result["code"].str.contains(pat1))]
result = result.loc[(result["code_name"].str.contains(pat2))]
是否可以一步直接实现多列组合条件的筛选,其中 result["code"].str.contains(pat1)与(result["code_name"].str.contains(pat2) 逻辑运算和 Series[]的逻辑运算为找到有效方法
还望有 pandas 数据筛选的前辈 指点一下 关于多列组合条件 筛选的实现方法,小弟不胜感激。
经过可以通过尝试 pandas.DataFrame.loc 函数实现,参数为 boolean array
boolean array 可以通过 DataFrame[ColumnIndexName]的 Series 的数值比较 或者 Series.str 的 contains 、startswith 、endswith 等方法获取
这取决于 DataFrame[ColumnIndexName]的 value 为数值还是 字符串,当然字符串也支持 "=="运算符,Series.str 部分方法也可支持正则表达式 使用更灵活
如果 pandas.DataFrame 想进行 多列的筛选是否 必须分步进行,不知道是否有更好的筛选方法 可以实现一步多列筛选数据
pandas.DataFrame result 实例如下 :
code code_name
0 sh.000001 上证综合指数
1 sh.000001 上证 A 股指数
2 sz.000001 上证 B 股指数
3 sh.000002 上证综合指数
4 sz.000002 上证 A 股指数
5 sz.000002 上证 B 股指数
分步筛选代码实例:
pat1 = "sz"
pat2 = "B"
result = result.loc[(result["code"].str.contains(pat1))]
result = result.loc[(result["code_name"].str.contains(pat2))]
是否可以一步直接实现多列组合条件的筛选,其中 result["code"].str.contains(pat1)与(result["code_name"].str.contains(pat2) 逻辑运算和 Series[]的逻辑运算为找到有效方法
还望有 pandas 数据筛选的前辈 指点一下 关于多列组合条件 筛选的实现方法,小弟不胜感激。
