我的数据框中的一列包含以逗号分隔的文字,例如"一,二,三":
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)
......它没有改变任何东西。为什么呢?
答案 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('_')
部分。