如何基于一个列值和其他条件更改DataFrame列值

Elias Guo

我有一个DataFrame和Series条件,如下所示:

import pandas as pd
import numpy as np
dates = pd.date_range('20170801','20170805')
df = pd.DataFrame({'Sales:[5,10,15,20,25]'}, index = dates)
error_days = pd.Series([True, True,False, False, True], index=df.index)

所以df是

             Sales
2017-08-01      5
2017-08-02     10
2017-08-03     15
2017-08-04     20
2017-08-05     25

error_days为

2017-08-01     True
2017-08-02     True
2017-08-03    False
2017-08-04    False
2017-08-05     True

如果原始销售额> 8,我会将那些error_days的销售额更改为8,因此df结果为

             Sales
2017-08-01      5
2017-08-02     8
2017-08-03     15
2017-08-04     20
2017-08-05     8

怎么做?

我知道

df['sales'][error_days] = 8 

将更改所有值,但我只想将销售额> 8更改为8。

顺便说一句,请不要在df中添加新列。

谢谢。

最大容量

IIUC我们可以在这里使用Series.clip_upper()

In [12]: df.loc[error_days, 'Sales'] = df.loc[error_days, 'Sales'].clip_upper(8)

In [13]: df
Out[13]:
            Sales
2017-08-01      5
2017-08-02      8
2017-08-03     15
2017-08-04     20
2017-08-05      8

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从基于其他行和列值的列中选择一个值?

基于其他列的值的条件更改

如何基于Pandas中的另一个DataFrame更改DataFrame的某些列中的值

R根据/基于一个数据集中列信息的条件将行值替换为其他行?

如何基于应用于其他两个列的函数更改列中的值

创建一个基于其他列指示特定值的历史存在的列

创建一个基于数据框中其他列的值创建新列的函数

熊猫:如何创建基于其他列值的条件对其他列求和的列?

如何创建一个新列,其值取决于其他列中的值?

如何在基于一个列的其他表中查找具有相同值的表名

基于其他列条件和其他列计算的数据框新列值

如果两列满足一个条件,则返回其他列的计算值。熊猫 / 窗户

根据其他列中的条件更新一个列中的值

如何基于方程式和其他列的唯一值创建新列?

排除基于一个或多个其他列而不是整个行的重复值

redshift 创建一个基于其他列的值的字段

遍历一个数据框,该数据框根据其他列的条件和值生成输出

如何添加一个新的pandas列,其值以一列为条件,但值取决于其他列?

Pandas Dataframe用其他列的第一个值填充列

创建一个 DataFrame,显示与每个 ID 共享一列值的其他 ID

使用基于条件的值创建一个新列

如何从其他列中不仅基于一个条件还删除两个条件的重复项

如何基于其他两列的条件使用or语句从一列中提取唯一值?

如何从其他列中提取列中的所有第一个值

如何从其他列中提取列中的所有第一个值?

如何创建一个值取决于r中其他列的列?

如何基于其他列值合并相同的列值?

Excel:基于其他列的列中的条件格式值

如果基于某些其他列不满足条件,则使用值列表填充 Dataframe 列