簡體   English   中英

根據另一列的值復制一列的值

[英]Copy value from one column based on the value of another column

我正在嘗試根據第四列中的值填充其他兩列中的一列中的值。

我有一個帶有四列的熊貓數據框:A,B,C,D

df_copy = df.copy()
for i, row in df.iterrows():
    if 'Test' in row.D:
        df_copy.loc[i, 'A'] = row.B
    elif 'Other' in row.D:
        df_copy.loc[i, 'A'] = row.C

這可以,但是非常慢。 有沒有更有效的方法?

您可以為此使用“布爾索引”,而不是遍歷所有行:

df_copy.loc[df['D']=='Test', 'A'] = df['B']
df_copy.loc[df['D']=='Other', 'A'] = df['C']

如果您知道D列僅由這兩個值組成,則它甚至可以更短:

df_copy['A'] = df['B']
df_copy.loc[df['D']=='Other', 'A'] = df['C']

如果要與in運算符相同,以測試該子字符串是否在列中,則可以執行以下操作:

df['D'].str.contains('Other')

成為布爾值而不是df['D']=='Other'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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