我在下面有以下示例数据框:
ID Text Value
A yes 1
C no 1
我想将第二行中与ID'C'关联的1值替换为0。我在网上找到的传统替换方式(使用.replace)会将两个1都替换为0。
下面是我想要的数据集:
ID Text Value
A yes 1
C no 0
答案 0 :(得分:1)
答案 1 :(得分:0)
使用np.where
np.where(df.ID=='C',0,df.Value)
Out[260]: array([1, 0], dtype=int64)
答案 2 :(得分:0)
根据您的要求特别使用位置信息。可以通过两种方式进行。使用loc
和iloc
(数字位置)。
import pandas as pd
df = pd.DataFrame({'ID': ['A', 'C'],
'Text' : ['yes', 'no'],
'Value' : ['1', '1']
}
)
# set the id as index
df.set_index('ID', inplace=True)
# use index to raplace value
df.loc['C','Value'] = 0
# reset index
df.reset_index(inplace=True)
# same operation can be done using iloc
# as an example use numeric position to revert back
df.iloc[1, 2] = 1