Pandas在数据帧内删除指定字符后的部分字符串

时间:2014-05-20 18:32:39

标签: python string pandas

我想要一个简单的方法来删除数据帧中指定字符后的字符串部分。 这是一个简化的例子:

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 个答案:

答案 0 :(得分:13)

您可以通过将重新格式化函数传递到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