使用单元格的位置

时间:2018-09-04 17:38:00

标签: python pandas replace position row

我在下面有以下示例数据框:

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

3 个答案:

答案 0 :(得分:1)

如何使用基于标签索引的.loc

df.loc["C", "Value"] = 0

或使用基于索引的.iloc

df.loc[1, "Value"] = 0

答案 1 :(得分:0)

使用np.where

np.where(df.ID=='C',0,df.Value)
Out[260]: array([1, 0], dtype=int64)

答案 2 :(得分:0)

根据您的要求特别使用位置信息。可以通过两种方式进行。使用lociloc(数字位置)。

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