全部,
我想更新 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/