python - 基于其他列裁剪数据框 - 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'])
是否有意义?
解决方案
既然你已经在你的 df 中定义了一个列,我会做
df['value_1']=df.filter(like='value_1').min(1)
df['value_2']=df.filter(like='value_2').max(1)
推荐阅读
- bash - 将 ENTRYPOINT bash 脚本的输出重定向到控制台
- qt - 在 QML 和 Qt 中的地图上添加点的有效方法
- python - 在python中以最高计数打印
- c++ - 如何 std::variant
- flutter - 无法在我的 Flutter 应用程序中添加基于构造函数的参数
- c# - 如何使用asp.net c#将Excel工作表的最后一列值复制到另一个Excel工作表的最后一列?
- python - Qt WebEngine 中 QWebInspector 的替代品是什么?
- uima - 如何从命令行运行 RUTA 脚本
- python - 如何使用 pandas 访问布尔表达式
- php - 加入控制器中的两个表