是否可以在dataFrame中的列/列子集上运行替换?

时间:2017-09-11 20:26:21

标签: python python-3.x pandas dataframe replace

例如:

dataset['column_1'].replace(['(null)'],['0'],inplace=True)

替换第一列中的所有“错误”字符串。但是,如果我现在要对几个特定的​​列进行操作,那么我要去:

dataset['column_1'].replace(['(null)'],['0'],inplace=True)
dataset['column_5'].replace(['(null)'],['0'],inplace=True)
dataset['column_7'].replace(['(null)'],['0'],inplace=True)

有没有办法将它组合在列名列表上运行相同的替换?

我试过这样做:

names = ['column_1','column_2','column_3','column_4','column_5','column_6','column_7']
dataset = pandas.read_csv('allvalues.csv', names=names)
dataset[['column_1','column_3','column_4','column_7']].replace(['(null)'],[0],regex=True,inplace=True)

但是之后仍然使用'(null)'字符串值打印列。

1 个答案:

答案 0 :(得分:1)

您可以使用DataFrame.replace()代替Series.replace()

dataset[['column_1','column_5','column_7']].replace(['error'],['0'],
                                                   regex=True, inplace=True)