当前位置: 首页 > 面试题库 >

熊猫在数据框内删除指定字符后的字符串部分

燕飞文
2023-03-14
问题内容

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

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

问题答案:

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


 类似资料:
  • 问题内容: 我对此有一个类似的问题:Pandas DataFrame:从一列中的字符串中删除不需要的部分 。 所以我用了: 大多数项目以“ PPI /”开头,但并非全部。似乎当没有’PPI /’后缀的项目遇到此错误时: AttributeError:“ float”对象没有属性“ lstrip” 我在这里想念什么吗? 问题答案: 使用replace: 或string.replace:

  • 问题内容: 我有一个类似于以下内容的数据框: 我希望输出为以下格式: 想要从“名称”列中删除所有数字。 我最近来的是使用以下代码在 单元 级别进行的: 任何想法如何在 系列 / 数据框 级别上以更好的方式 实现 。 问题答案: 您可以结合使用正则表达式将str.replace应用于列: 输出: 在正则表达式中代表“任何数字”,代表“一个或多个”。 因此,其含义是:“将字符串中所有出现的数字全部替换

  • 考虑到以下情况,我很难理解这里的机制。 我有一个从: 我想删除列a1中包含“aa”的所有行 我相信我已经尝试了这里的一切,但仍然得到了: ValueError:标签[False False False...False False]轴中不包含 是的,我也试过 任何帮助都将不胜感激,谢谢。

  • 问题内容: 我只是想知道如何在PHP中某个子字符串之后删除所有内容 例如: 我想要它,以便它删除包括子字符串“ By”在内的所有文本。 谢谢 问题答案: 用简单的英语来说:给我字符串的一部分,从开始到结束,直到您第一次遇到分支的位置。

  • 问题内容: 我使用了多种方式来拆分和剥离熊猫数据框中的字符串,以删除所有的’\ n’字符,但是由于某些原因,它根本不想删除附加在其他单词上的字符,即使我拆分它们。我有一个带有列的pandas数据框,该列使用Beautifulsoup捕获网页中的文本。文本已经由beautifulsoup清除了一点,但是未能删除附加在其他字符上的换行符。我的字符串看起来像这样: “动手\ n开发游戏。我们将研究与游戏

  • 问题内容: 我想查看数据框内特定列中是否存在特定字符串。 我遇到了错误 ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。 问题答案: 将返回大小为布尔值的指标向量 因此,您可以使用 或者,如果您不在乎有多少条记录与您的查询匹配

  • 我想通过以下方式删除字符串的最后一个后面的部分: 或者 到目前为止,我已经尝试过了(工作) 输出: 或 我是python的初学者,所以很好奇有没有其他方法可以做到这一点。

  • 我想从字符串类型的熊猫列中删除小数点 Df 我正试着去掉那一栏的小数 df['Net Sales']已经是字符串类型。 我尝试如下: < code>df['净销售额'] = df['净销售额']。astype(str)。替换(' \.0 ','',regex=True) 但我得到的错误如下: < code>ValueError:基数为10的int()的文本无效:“1567.55” 谢谢。