Python 检查单列的单元格,如果它们满足特定条件,使用Pandas对其应用公式?

Python 检查单列的单元格,如果它们满足特定条件,使用Pandas对其应用公式?,python,pandas,dataframe,replace,data-cleaning,Python,Pandas,Dataframe,Replace,Data Cleaning,在CSV文件中执行一些数据清理。我想把一些CSV数据转换成HTML,然后再上传到网站上 我将在一个数据框中遍历名为“详细信息”列中的每个单元格 如果单元格以以下字符组合开头:\r\n\t,则我要将其替换为: df2=df.copy() def启动时更换(x、a、b): 如果x.startswith(a): x、 更换(a、b) df2['Details']=df2['Details']。 应用(lambda x:startswith_replace(x,'\\r\\r\\n\\t','\\'))

在CSV文件中执行一些数据清理。我想把一些CSV数据转换成HTML,然后再上传到网站上

我将在一个数据框中遍历名为“详细信息”列中的每个单元格

如果单元格以以下字符组合开头:\r\n\t,则我要将其替换为:
  • df2=df.copy()
    def启动时更换(x、a、b):
    如果x.startswith(a):
    x、 更换(a、b)
    df2['Details']=df2['Details']。
    应用(lambda x:startswith_replace(x,'\\r\\r\\n\\t','\\'))
    

    但是,当我运行此命令时,“详细信息”列中的每个单元格都会替换为“无”作为其值。

    这可以使用内置函数来完成,而无需定义自己的函数,只需一点正则表达式

    ^
    仅检查字符串的开头,以及
    ()
    可选地将其设置为捕获组,但如果您决定替换所有出现的内容,则可以省略这两个选项,并传递原始字符串)

    df
    细节
    0 1 2 3\r\r\n\t
    1 4 5 6 lkjn\r\n\t
    2 7 8 9 abcdefg
    df['Details']=df['Details'].str.replace(r'^(\r\r\n\t)“,\\”)
    细节
    0   1   2   3   \\
    1 4 5 6 lkjn\r\n\t
    2 7 8 9 abcdefg
    
    函数没有
    return
    语句,因此隐式返回
    None
    ,请参阅
    df2 = df.copy()
    
    def startswith_replace (x, a, b):
    
        if x.startswith(a):
            x.replace(a, b)       
    
    df2['Details'] = df2['Details'].
          apply(lambda x: startswith_replace(x, '\\r\\r\\n \\t', '\<ul\>\<li\>'))
    
    df
    
        A   B   A   Details
    0   1   2   3   \r\r\n \t
    1   4   5   6   lkjn \r\r\n \t
    2   7   8   9   abcdefg
    
    df['Details']=df['Details'].str.replace(r'^(\r\r\n \t)','\<ul\>\<li\>')
    
        A   B   A   Details
    0   1   2   3   \<ul\>\<li\>
    1   4   5   6   lkjn \r\r\n \t
    2   7   8   9   abcdefg