我想替换不同列中的值。也就是说,如果它们包含“Y”,则用值“Y”替换;如果它们包含“N”,则用值“N”替换。
因为我对许多列都这样做,所以代码看起来非常多余,我想知道是否可以将始终相似的过程(只有列名更改)外包给一个方法。
不幸的是,我不知道如何将列名作为参数传递给我当时编写的方法。这可能吗?我是一个Python初学者,以前从未见过这种情况!
非常感谢你的帮助!
df = pd.DataFrame({'A': ['J', 'Ja', 'N', 'N n'],
'B': ['Nö', 'Ja', 'N', 'N n'],
'C': ['Jup', 'Ja', 'N', 'N n']})
df.loc[df['A'].str.contains('J'), 'A'] = 'J'
df.loc[df['A'].str.contains('N'), 'A'] = 'N'
df.loc[df['B'].str.contains('J'), 'B'] = 'J'
df.loc[df['B'].str.contains('N'), 'B'] = 'N'
df.loc[df['C'].str.contains('J'), 'C'] = 'J'
df.loc[df['C'].str.contains('N'), 'C'] = 'N'
def clear_values(column_namestr):
column_name = [column_namestr]
print(type(column_name))
#df.loc[df[column_name].str.contains('X'), 'spaltennamen'] = 'X'
#df.loc[df[column_name].str.contains('o'), 'spaltennamen'] = 'o'
column_namestr = 'a'
df2 = clear_values(column_namestr)
But does not work...
1条答案
按热度按时间fnvucqvd1#
如果你想复制
使用函数可以执行以下操作
如果只想更改列,可以执行以下操作: