按字符拆分并删除尾随值

2024-04-25 12:41:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试删除用“[”标识的剩余数据,同时保留第一个值。你知道吗

import pandas as pd
df=pd.DataFrame({'foo':['a','b[b7','c']})
print(df)

变成:

0 a
1 b[b7
2 c

我想要

0 a
1 b
2 c

有什么建议吗?你知道吗


Tags: 数据importdataframepandasdffooas建议
3条回答
import pandas as pd
df=pd.DataFrame({'foo':['a','b[b7','c']} )
df["foo"] = df["foo"].str.replace("(\[.*)","")

这是https://regex101.com/的解释

1st Capturing Group (\[.*)
\[ matches the character [ literally (case sensitive)
.* matches any character (except for line terminators)
* Quantifier — Matches between zero and unlimited times, as many times as possible, giving back as needed (greedy)

这意味着它将寻找一个[。如果找到一个,它将删除[和它后面的所有字符。你知道吗

我猜你在找str.split+str[0]-

df

      foo
0    test
1  foo[b7
2    ba[r

df.foo.str.split('[').str[0]

0    test
1     foo
2      ba
Name: foo, dtype: object
df.foo=df.foo.str[0]
df
Out[212]: 
  foo
0   a
1   b
2   c

相关问题 更多 >