python - 根据单独系列中的条件更新 Pandas 系列

标签 python pandas

全部,

我想更新 pandas 中的现有列。这是一个例子:

df = pd.DataFrame({'a': ['A', 'B', 'C', 'A'], 'b': ['C', 'A', 'B', 'C'], 'c': np.random.randn(4), 'd': np.random.randn(4) })

df['NewColumn1'] = np.where( df['a'].str.contains('A') & df['b'].str.contains('C') , df['c'], 1)

df
   a  b         c         d  NewColumn1
0  A  C -0.668001 -0.434521   -0.668001
1  B  A  1.893248  1.927666    1.000000
2  C  B -2.145310  0.602808    1.000000
3  A  C  0.323770  0.966303    0.323770

我创建了一个名为“NewColumn1”的新列。

现在我想根据新条件更新 NewColumn1 (我的目标是更新 NewColumn1 而不是覆盖其以前的值)。

当“d”列大于 1 时,我想更新“NewColumn1”并将其值设置为 100。我该怎么做?

非常感谢

最佳答案

您可以使用.loc访问器来更新现有系列:

df.loc[df['d'] > 1, 'NewColumn1'] = 100

您的问题仍然不清楚:“更新但不覆盖以前的值”没有意义。

将来,请提供您所需的输出。这比冗长的描述更有值(value)。

关于python - 根据单独系列中的条件更新 Pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49447392/

相关文章:

python - max() 或 min() 函数执行多少次比较?

python - 缩放/归一化 pandas 列

python Pandas : Is it possible to convert date Object to DateTimeIndex in multi-index dataframe?

python - 删除小数精度不四舍五入

Python Bot 按顺序发送消息

python - 如何设置 x 标签以在 Bokeh 图中显示日期时间?

python - 无法访问 Python 的 init.py 文件中的 Kubernetes env var

python - 如何使用 pandas read_csv 函数有效处理欧洲小数点分隔符?

Python Pandas Cumsum 在多种条件下每次都会重置

python - Pandas 结合切片和列表来选择列