使用查找值列表对数据框进行排序,并返回其他列的行值的时间序列



我想使用查找表(字符串列表)来搜索数据框架列(名称)并返回其他列的行值的时间序列。查找字符串列表不会与name列中的字符串完全匹配,但会包含类似的字符串(以?开头)。

lookup=["AB","AC","AX"]
DF = name  year  mean  upper  lower
AB2    2020   4     7      1
AB_7   2021   5     9      2
AC1    2022   3     9      2
AX     2019   4     9      2

返回:

AB.csv

2020  4  7 1
2021  5  9 2

AC.csv

2022 3  9  3

AX.csv

2019 4 9 2

可以使用Pandas过滤器和regex参数与rf'^{selector}'。对于每个循环,此regex将只保留模式与索引列(set_index('name'))中字符串开头的selector匹配的行(axis=0)。

import pandas as pd
df = pd.read_csv('sample.csv')
print(df)
lookup=["AB","AC","AX"]
df = df.set_index('name')
for selector in lookup:
filtered_df = df.filter(regex=rf'^{selector}', axis=0)
filtered_df.to_csv(f'{selector}.csv', index=False)

AB.csv

year,mean,upper,lower
2020,4,7,1
2021,5,9,2

AC.csv

year,mean,upper,lower
2022,3,9,2

AX.csv

year,mean,upper,lower
2019,4,9,2

相关内容

最新更新