首页 > 解决方案 > 基于其他列裁剪数据框 - Python

问题描述

假设我有以下数据集

data = {
  'date': ['1/1/2019', '1/2/2019', '1/3/2019', '1/4/2019', '1/1/2019', '1/2/2019', '1/3/2019', '1/4/2019'],
  'account_id': [1, 1, 1, 1, 2, 2, 2, 2],
  'value_1': [1, 2, 3, 4, 5, 6, 7, 8],
  'value_2': [1, 3, 6, 9, 10, 12, 14, 16],
    'value_1.1': [5, 5, 5, 5, 5, 5, 5, 5],
  'value_2.1': [0, 0, 0, 0, 0, 0, 0, 0]
}
df = pd.DataFrame(data,index = data['date']).drop('date', 1)
df

我将如何根据以下逻辑剪辑 col value_1 和 value_2:

--for value_1,upper = value_1.1,lower = 无

--for value_2,upper = None,lower = value_2.1?

我在想像这样使用

np.where conditions, like np.where(df['value_1']>=value_1.2, value_1, df['value_1'])

np.where(df['value_2']<=value_2.1, 0, df['value_2'])

是否有意义?

标签: pythonpandasdataframe

解决方案


既然你已经在你的 df 中定义了一个列,我会做

df['value_1']=df.filter(like='value_1').min(1)
df['value_2']=df.filter(like='value_2').max(1)

推荐阅读