
Pandas DataFrame高效筛选:基于配置列表的行/列选择
本文介绍如何利用Pandas库,根据预设的配置列表,快速筛选DataFrame的行和列。
利用isin()函数实现精准筛选
Pandas的isin()函数提供了一种便捷的方式,根据列表中的值筛选DataFrame的行或列。其语法如下:
<code class="python">series.isin(list)</code>
其中list为包含筛选值的列表。
示例:基于UID筛选DataFrame
假设有一个DataFrame如下:
<code class="python">df = pd.DataFrame([['a1', 1], ['a2', 4]], columns=['uid', 'score'])</code>
以及一个包含筛选UID的列表:
<code class="python">df2 = pd.DataFrame([['a1']], columns=['uid'])</code>
我们可以使用isin()函数筛选df中uid列的值在df2中存在的行:
<code class="python">df[df['uid'].isin(df2['uid'])]</code>
输出结果:
<code> uid score 0 a1 1</code>
处理多个DataFrame的合并筛选
对于多个DataFrame的批量处理,可以使用concat()函数合并筛选结果。例如:
<code class="python">import pandas as pd
# 读取多个CSV文件
dfs = []
for filename in ['file1.csv', 'file2.csv', 'file3.csv']:
dfs.append(pd.read_csv(filename))
# 基于配置列表筛选
filtered_dfs = []
for df in dfs:
filtered_dfs.append(df[df['uid'].isin(df2['uid'])])
# 合并筛选后的DataFrame
combined_df = pd.concat(filtered_dfs)</code>
combined_df将包含所有筛选后DataFrame的合并结果。 通过此方法,可以高效地处理大量数据,并根据预设的配置列表进行精准筛选。










