Python根据条件附加到dataframe列

Python根据条件附加到dataframe列,python,pandas,append,Python,Pandas,Append,我想计算数据帧列中出现的管道符号的数量,它等于5,然后我需要在现有值上附加另一个管道(|)符号 df2['smartexpenseid'] 0 878497|253919815?HOTEL?141791520780|||305117|| 1 362593||||35068|| 2 |231931871509?CARRT?231940968972||||177849| 3 955304|24

我想计算数据帧列中出现的管道符号的数量,它等于5,然后我需要在现有值上附加另一个管道(|)符号

df2['smartexpenseid']

0      878497|253919815?HOTEL?141791520780|||305117||
1                                   362593||||35068||
2         |231931871509?CARRT?231940968972||||177849|
3       955304|248973233?HOTEL?154687992630||||93191|
4                                 27984||||5883|3242|
5    3579321|253872763?HOTEL?128891721799|92832814|||
6            127299|248541768?HOTEL?270593355555|||||
7         |231931871509?CARRT?231940968972||||177849|
8                                   831665||||80658||
9              |247132692?HOTEL?141790728905||||6249|
例如:对于第5行,(|)计数是5,因此它应该在现有值上添加另一个(|),对于其他行,由于计数是6,所以我们保持原样。有人能帮我吗

我试过这些

if df2['smartexpenseid'].str.count('\|')==5:
    df2['smartexpenseid'].append('\|')
这让我犯了一个错误,说“一个系列的真值是模糊的”

而且

a = df2['smartexpenseid'].str.count('\|')
if 5 in a:
    a.index(5)
所以,你有一个向下。现在,您需要有条件地附加一个额外的
“|”
字符。更多信息请参见熊猫

m = df2['smartexpenseid'].str.count('\|') == 5
df2.loc[m, 'smartexpenseid'] = df2['smartexpenseid'][m].values + '|'

请展示你所尝试过的Morry@EdChum-我已经编辑了这篇文章,包括我尝试过的内容非常感谢Alex!