【发布时间】:2019-12-30 12:04:19
【问题描述】:
我有一个如下所示的数据框
import pandas as pd
df = pd.DataFrame({'a': [0, -1, 2], 'b': [-3, 2, 1]})
在我的真实数据中,我有 100 多列。我想做的是排除两列,我想将所有其他列中的负值替换为零
我试过了,但它适用于所有列。
df[df < 0] = 0
唯一的方法是将所有列名放在一个列表中并通过如下所示的循环运行
col_list = ['a1','a2','a3','a4',..........'a100'] # in this `a21`,a22` columns are ignored from the list
for col in col_list:
df[col] = [df[col]<0] = 0
正如您所见,它冗长且效率低下。
你能帮我用任何有效的方法来做到这一点吗?
【问题讨论】: