pandas 删除值匹配的行

koaltpgm  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(150)
def remove_low_data_states(column_name):
    items = df[column_name].value_counts().reset_index()
    items.columns = ['place', 'value']
    print(f'Items in column: [{column_name}] with low data')
    return list(items[items['value'].apply(lambda val: val < items.value.median())].place)

remove_low_data_states('col1') -- > returns ['hello', 'bye']

原始表
| 列1|第2列|第3列|
| - -|- -|- -|
| 你好|2个|四个|
| 全世界|2个|四个|
| 再见|2个|四个|
更新表格
| 列1|第2列|第3列|
| - -|- -|- -|
| 全世界|2个|四个|
上面的方法给出了一个列中未通过中值标准的名称列表。然后,如何使用名称列表删除与行值关联的行?
我试过使用pd.drop,但那没有帮助,或者我犯了某种错误。

wn9m85ua

wn9m85ua1#

我们可以使用.isin()

def remove_low_data_states(column_name):
    items = df[column_name].value_counts().reset_index()
    items.columns = ['place', 'value']
    print(f'Items in column: [{column_name}] with low data')
    return list(items[items['value'].apply(lambda val: val < items.value.median())].place)

df = df[~df['col1'].isin(remove_low_data_states('col1'))]

df.head()

相关问题