[英]Python Pandas If value in column B = equals [X, Y, Z] replace column A with “T”
Say I have this array: 说我有这个数组:
A, B
1, G
2, X
3, F
4, Z
5, I
If column B equals [X, Y or Z] replace column A with value "T" 如果列B等于[X,Y或Z],则将列A替换为值“ T”
I've found how to change values within the same column but not across, any help would be most appreciated. 我发现如何在同一列而不是跨列中更改值,将不胜感激。
You can try this: 您可以尝试以下方法:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5],
'B': ['G', 'X', 'F', 'Z', 'I']
})
df.ix[df.B.isin(['X','Y','Z']), 'A'] = 'T'
print df
Output: 输出:
A B
0 1 G
1 T X
2 3 F
3 T Z
4 5 I
Remember to use ix
or loc
to avoid setting values on a copied slice. 请记住使用ix
或loc
以避免在复制的切片上设置值。
Use isin
and loc
to set the value: 使用isin
和loc
设置值:
In [138]:
df.loc[df.B.isin(['X','Y','Z']),'A']='T'
df
Out[138]:
A B
0 1 G
1 T X
2 3 F
3 T Z
4 5 I
You can also use np.where
: 您也可以使用np.where
:
In [140]:
df['A'] = np.where(df.B.isin(['X','Y','Z']),'T', df['A'])
df
Out[140]:
A B
0 1 G
1 T X
2 3 F
3 T Z
4 5 I
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.