我正在尝试根据另一列中的值填充单独的列。对于下面的 df
,当 ['Code'] == ' 时,我想用
时,A' 和 'C1'
填充 ['Assign']
当 ['Code'] == 'B''C2'。其他我喜欢用
np.nan
将 pandas 导入为 pd
d = ({
'Place' : ['Home','Away','Work','Home','Shops','Park','Cafe','Shops','Away','Home','Cafe','Work','Park'],
'Code' : ['A','A','A','A','C','B','B','C','A','A','B','A','B'],
})
df = pd.DataFrame(data=d)
我已经尝试过此操作,但值不正确。
df['Assign'] = df['Code'].where((df['Code'] == 'A'), ['C1'])
df['Assign'] = df['Code'].where((df['Code'] == 'B'), ['C2'])
我希望输出这个:
Place Code Assign
0 Home A C1
1 Away A C1
2 Work A C1
3 Home A C1
4 Shops C
5 Park B C2
6 Cafe B C2
7 Shops C
8 Away A C1
9 Home A C1
10 Cafe B C2
11 Work A C1
12 Park B C2
最佳答案
您可以使用np.where
:
import numpy as np
df['Assign'] = np.where(df['Code']=='A','C1','C2')
根据最近的变化,解决方案是:
df['Assign'] = np.where(df['Code']=='A','C1',np.where(df['Code']=='B','C2',''))
如果当 df['Code']=='C'
时想要 null 值,请使用:
df['Assign'] = np.where(df['Code']=='A','C1',np.where(df['Code']=='B','C2',None))
None 是字符串的空值。
关于python - 根据另一个 pandas 中的值自动填充列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51888197/