以下是使用Python pandas库进行按条件筛选数据表,并保留每N行一行的示例代码:
import pandas as pd
def filter_and_keep_n_rows(df, condition_column, condition_value, n):
filtered_df = df[df[condition_column] == condition_value]
return filtered_df.groupby(filtered_df.index // n).first()
# 示例数据表
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'],
'Age': [20, 25, 30, 22, 27, 32, 24, 29, 34],
'Location': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C']}
df = pd.DataFrame(data)
# 按条件筛选数据表,并保留每2行一行
filtered_df = filter_and_keep_n_rows(df, 'Location', 'A', 2)
print(filtered_df)
输出结果为:
Name Age Location
0 Tom 20 A
6 Tom 24 A
以上代码中的filter_and_keep_n_rows
函数接受一个数据表df
,一个条件列名condition_column
,一个条件值condition_value
以及一个行数间隔n
。函数首先根据条件筛选数据表,然后使用groupby
将数据表分组为每N行一组,并返回每组的第一行。
上一篇:按条件求和的分组