Python 将连续重复的字符替换为单列操作-`pandas.DataFrame`

Python 将连续重复的字符替换为单列操作-`pandas.DataFrame`,python,pandas,Python,Pandas,如何删除字符串中的重复字符并只保留其中一个 e、 g:- 到 我刚刚读过这样的数据: dataFrame = pd.read_excel("C:\\Users\\Bertug\\Desktop\\example.xlsx") 名字 0贝图格格米 输入从.xlsx文件读取。我已经尝试过拆分和剥离功能,但它们并没有像预期的那样工作 我怎样才能解决这个问题 python代码: if __name__ == '__main__': s = 'Bertuggggg Mete' if le

如何删除字符串中的重复字符并只保留其中一个

e、 g:-

我刚刚读过这样的数据:

dataFrame = pd.read_excel("C:\\Users\\Bertug\\Desktop\\example.xlsx")
名字 0贝图格格米

输入从.xlsx文件读取。我已经尝试过拆分和剥离功能,但它们并没有像预期的那样工作

我怎样才能解决这个问题

python代码:

if __name__ == '__main__':
    s = 'Bertuggggg Mete'
    if len(s) == 0:
        print('wrong!')
        exit()
    r = s[0]
    for c in s:
        if r[len(r) - 1] != c:
            r += c
    print(r)
java代码:

public class Test {

public static void main(String[] args) {
    String s = "Bertuggggg Mete";
    StringBuffer sb = new StringBuffer();
    for (int i = 0, j = s.length(); i < j; i++) {
        if (i == 0) {
            sb.append(s.charAt(0));
        }
        if (s.charAt(i) != sb.charAt(sb.length() - 1)) {
            sb.append(s.charAt(i));
        }
    }
    System.out.println(sb);
}

}
公共类测试{
公共静态void main(字符串[]args){
字符串s=“bertugggg Mete”;
StringBuffer sb=新的StringBuffer();
对于(int i=0,j=s.length();i
查看以下内容:

column\u name
替换为要应用替换的任何列名

min_threshold_rep = 2
column_name = 'Name'
dataframe[column_name]= dataframe[column_name].str.replace(r'(\w)\1{%d,}'%(min_threshold_rep-1), r'\1')

注意:这将用一个字符替换每个
min\u threshold\u rep
连续字符数。

查看此处:检查此帖子是否有用:我已经查看了,但它只包含两个字符。我的问题是关于@Bertug的两个以上可能的副本,您可以使用stackoverflow.com/questions/18799036/中的idea。另外,来自stackoverflow.com/questions/9841303:如果您查看解决方案中的正则表达式,您将得到答案。提示:您需要使用
\1
而不是
\1\1
您刚刚为Python问题提供了java解决方案:我认为是PSo。现在您可以将这段代码移到gist中的某个地方,以供将来参考,并从这里删除:Pwith python 3.5?它正在工作,非常感谢。你能在这里解释一下(r'(\w)\1*',r'\1')吗。如何解决此问题:)
\1
表示在此处字符串中找到的第一个组-
(\w)
,它将多个连续实例替换为一个。只需转到官方文档:
public class Test {

public static void main(String[] args) {
    String s = "Bertuggggg Mete";
    StringBuffer sb = new StringBuffer();
    for (int i = 0, j = s.length(); i < j; i++) {
        if (i == 0) {
            sb.append(s.charAt(0));
        }
        if (s.charAt(i) != sb.charAt(sb.length() - 1)) {
            sb.append(s.charAt(i));
        }
    }
    System.out.println(sb);
}

}
min_threshold_rep = 2
column_name = 'Name'
dataframe[column_name]= dataframe[column_name].str.replace(r'(\w)\1{%d,}'%(min_threshold_rep-1), r'\1')