Pandas 删除数据框中特定字符后的字符串部分

9 投票
1 回答
19001 浏览
提问于 2025-04-18 07:07

我想要一个简单的方法来删除数据框中字符串指定字符后面的部分。

这里有一个简单的例子:

数据框 df:

   obs         a  b  c  d
0    1   1-23-12  1  2  3
1    2  12-23-13  4  5  5
2    3  21-23-14  4  5  5

我想要去掉 a 列中第一个 - 符号后面的部分,我希望得到的结果是:

新的数据框 newdf:

   obs   a  b  c  d
0    1   1  1  2  3
1    2  12  4  5  5
2    3  21  4  5  5

1 个回答

15

你可以通过把一个格式化函数传递给 apply 方法来重新格式化这些值,方法如下:

from StringIO import StringIO
import pandas as pd

data = """   obs  a  b  c  d
1   1-23-12  1  2  3
2  12-23-13  4  5  5
3  21-23-14  4  5  5"""

# Build dataframe from data
df = pd.read_table(StringIO(data), sep='  ')

# Reformat values for column a using an unnamed lambda function
df['a'] = df['a'].apply(lambda x: x.split('-')[0])

这样就能得到你想要的结果:

   obs   a  b  c  d
0    1   1  1  2  3
1    2  12  4  5  5
2    3  21  4  5  5

撰写回答