如何替换列中以逗号分隔的文本?

时间:2017-02-14 10:41:43

标签: python pandas

我的数据框中的一列包含以逗号分隔的文字,例如"一,二,三":

df =
  Col1               Col2
  One, two, three    Abc
  Two                Def

我想将One, two, three替换为One_two_three

如果我应用此代码:

df['Col1'].replace("One, two, three", "One_two_three",inplace=True)

......它没有改变任何东西。为什么呢?

2 个答案:

答案 0 :(得分:1)

不一定需要申请

df["Col1"] = df["Col1"].str.replace(' ','').str.replace(',','_').str.strip('_')

          Col1
0  x_w_wwwa_ds
1        x_a_a
2          y_c
3            y
4            z

也有效。我不确定推荐哪种方法是明智的

答案 1 :(得分:0)

如果需要,处理空白甚至外部逗号的通用解决方案:

df['Col1'] = df['Col1'].apply(lambda x: '_'.join(x.replace(' ','').split(',')).strip('_'))

示例:

df = pd.DataFrame({'Col1':['x, w , wwwa,ds','x,a,a','y,c','y',',z,']})

             Col1
0  x, w , wwwa,ds
1           x,a,a
2             y,c
3               y
4             ,z,

结果:

          Col1
0  x_w_wwwa_ds
1        x_a_a
2          y_c
3            y
4            z

如果您没有外部逗号,请忽略最后.strip('_')部分。