因此,问题在于检查同一列内的这些值是否相等,即
df = pd.DataFrame(np.array([[1, 2, 3], [1, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'])如果'a‘列的下列值相等,那么是否有可能为同一行(或任何其他行)更改'c’列的值。好像熊猫不喜欢骑自行车。
for i in range(len(df)-1):
if df['a'][i+1]==df['a'][i]:
df['c'][i]='XXX'` 但在熊猫中不起作用,只需要将n值与n+1值进行比较,并在另一列中更改值
发布于 2022-10-24 20:22:07
因为它是一个数据文件,所以您可以使用duplicated
df.loc[df.duplicated('a', keep=False), 'c']='XXX'我的意思是,如果您的目标是为每一行设置'c‘到'XXX’,其列'a‘等于另一行'a’的值。
就像你描述的那样。但是,您的代码尝试看起来似乎实际上只是试图找到后续的相同值。
在这种情况下,你是在寻找
df.loc[df.a.shift(-1)==df.a, 'c']='XXX'https://stackoverflow.com/questions/74185939
复制相似问题