pandas 在数据框内删除指定字符后的字符串部分 [英] Pandas delete parts of string after specified character inside a dataframe

查看:90
本文介绍了 pandas 在数据框内删除指定字符后的字符串部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I would like a simple mehtod to delete parts of a string after a specified character inside a dataframe. Here is a simplified example:

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列中的部分,我的预期输出是:

I would like to remove the parts in the a column after the first - sign, my expected output is:

newdf:

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

推荐答案

您可以通过将重新格式化函数传递给apply方法的方式来重新格式化值,如下所示:

You can reformat the values by passing a reformatting function into the apply method as follows:

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])

这将为您提供所需的结果:

This gives you your desired result:

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

这篇关于 pandas 在数据框内删除指定字符后的字符串部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆