删除python中单词的空格
嗨,我有一个像这样的df删除python中单词的空格,python,pandas,Python,Pandas,嗨,我有一个像这样的df Product Prod1 Prod 1 Prod2 Prod 2 Prod 2 Prod 3 Prod3 and so on 我基本上想把所有这些Prod1、Prod2和Prod3等转换成分类变量。为此,我需要删除PROD和数字之间的空白,例如删除PROD和1之间的空间,以便PROD1、PROD 1等成为PROD1,这样对于相同的产品没有重复条目。 上表的预期产出 Product Prod1 Prod1 Prod2 Prod2 Prod2 Prod3 Prod3
Product
Prod1
Prod 1
Prod2
Prod 2
Prod 2
Prod 3
Prod3 and so on
我基本上想把所有这些Prod1、Prod2和Prod3等转换成分类变量。为此,我需要删除PROD和数字之间的空白,例如删除PROD和1之间的空间,以便PROD1、PROD 1等成为PROD1,这样对于相同的产品没有重复条目。
上表的预期产出
Product
Prod1
Prod1
Prod2
Prod2
Prod2
Prod3
Prod3 and so on
所有的答案都只是为了一句话。我想要一个可以复制到整个表的答案,并删除列中所有单词之间的空格让我们试试
str。用以下模式替换,删除Prod
和数字之间的空格
df['Product'] = df.Product.str.replace('(Prod)(\s+)(\d)', r'\1\3')
输出:
Product
0 Prod1
1 Prod1
2 Prod2
3 Prod2
4 Prod2
5 Prod3
6 Prod3 and so on
使用str.split().agg(“.join)
Ex:
df['Product'] = df['Product'].str.split().agg("".join)
#or
#df['Product'] = df['Product'].str.replace(r"(\s+)", "")
print(df)
Product
0 Prod1
1 Prod1
2 Prod2
3 Prod2
4 Prod2
5 Prod3
6 Prod3
输出:
df['Product'] = df['Product'].str.split().agg("".join)
#or
#df['Product'] = df['Product'].str.replace(r"(\s+)", "")
print(df)
Product
0 Prod1
1 Prod1
2 Prod2
3 Prod2
4 Prod2
5 Prod3
6 Prod3
试试看:
df["Product"] = [i.replace(" ", "") for i in df.Product]
我想这是最简单的方法
df['Product'] = df['Product'].str.replace(' ','')
替换({“”:'},regex=True)快速问题,\1\3是什么意思?在本例中,\1
指第一个捕获组,Prod
<代码>\3
引用了第三个捕获组。这与所需的输出不匹配吗?它将给出与第二个答案相同的prod3,并且很快将给出结果。@datanoveler我相信“等等”是为了数据列表,我明白了,很好!