[英]Update Pandas series based on condition in a separate series
所有,
我想更新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
您的問題仍然不明確:“更新但不會覆蓋以前的值”沒有意義。
將來,提供您想要的輸出 。 這比冗長的描述更有價值。
你需要:
df['NewColumn1'] = np.where( df['d'] > 1 , 100, df['NewColumn1'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.