pandas python3.7中行的条件过滤器

34gzjxbg  于 2023-06-28  发布在  Python
关注(0)|答案(1)|浏览(139)

我有以下数据框

col1    col2
B20.0   B20 | B20-B20
B20.0   B20
A16     A15-A20

我想对行进行筛选,以便对于相同的“col1”值,如果col2只有一个值(没有“|')选择此行,否则选择另一行。regex应该在这里工作还是更好的方法在这里工作。
预期输出为:

col1    col2
B20.0   B20
A16     A15-A20
83qze16e

83qze16e1#

您可以执行以下操作:

import pandas as pd
data = {'col1': ['B20.0', 'B20.0', 'A16'],
        'col2': ['B20 | B20-B20', 'B20', 'A15-A20']}
df = pd.DataFrame(data)
df['len'] = df['col2'].apply(lambda x: len(x.split('|')))
df.groupby('col1', as_index=False).agg('min').drop('len', axis=1)

相关问题