簡體   English   中英

根據單獨系列中的條件更新Pandas系列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM