Python 替换数据帧中的字符串,保持第一次发生的完整性

Python 替换数据帧中的字符串,保持第一次发生的完整性,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据框,如下所示: df Name Statement 1 A Value is favourable due to A favourable due to Q favourable due to U and unfavourable due to D B Value is favourable due to T favourable due to W favourable due to J and unfavourable due to O C

我有一个熊猫数据框,如下所示:

df
Name    Statement 1
A       Value is favourable due to A favourable due to Q favourable due to U and unfavourable due to D
B       Value is favourable due to T favourable due to W favourable due to J and unfavourable due to O
C       Value is favourable due to U favourable due to D favourable due to H and unfavourable due to P
D       Value is favourable due to J favourable due to F favourable due to M and unfavourable due to Z
是否有任何方法可以将字符串
替换为“
”,“”,除了第一次出现之外

对于不利的部分也需要做同样的事情。

试试以下方法:

df['Statement 1'] = df['Statement 1'].apply(lambda x: x[:27]+x[27:].replace(' favourable due to', ','))

print(df.to_string())
输出:

  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z
  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z
试试这个:

df['Statement 1'] = df['Statement 1'].apply(lambda x: x[:27]+x[27:].replace(' favourable due to', ','))

print(df.to_string())
输出:

  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z
  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z
这将有助于:

df['Statement 1'] = df['Statement 1'].apply(lambda x: x.replace(' favourable due to', ',').replace(',', ' favourable due to', 1)
print(df)
输出:

  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z
  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z
这将有助于:

df['Statement 1'] = df['Statement 1'].apply(lambda x: x.replace(' favourable due to', ',').replace(',', ' favourable due to', 1)
print(df)
输出:

  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z
  Name                                                   Statement 1
0    A  Value is favourable due to A, Q, U and unfavourable due to D
1    B  Value is favourable due to T, W, J and unfavourable due to O
2    C  Value is favourable due to U, D, H and unfavourable due to P
3    D  Value is favourable due to J, F, M and unfavourable due to Z

谢谢你的解决方案。我在我的代码中实现了上述代码,由于金额中的
“,”
,我收到了问题。并非我输入的所有句子都是相同的,所以以前没有看到过这个问题。前:
金额为1.189亿(38.5%),后:
金额为1.89亿(38.5%),后:
金额为1.379亿(12.26%),后由B 361亿(11.7%)有利驱动,有没有办法解决这个问题?感谢您的解决方案。我在我的代码中实现了上述代码,由于金额中的
“,”
,我收到了问题。并非我输入的所有句子都是相同的,所以以前没有看到过这个问题。前:
金额为1.189亿(38.5%),后:
金额为1.189亿(38.5%),后:
金额为1.379亿(12.26%),后:
金额为1.361亿(11.7%),后:
有没有办法解决这个问题?你能解释一下这个解决方案中的代码吗?你能解释一下这个解决方案中的代码吗?