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%),后:有没有办法解决这个问题?你能解释一下这个解决方案中的代码吗?你能解释一下这个解决方案中的代码吗?