如何将破折号 (-) 的所有实例替换为 pandas 数据帧中字符串中间的数字零 (0)?

Posted

技术标签:

【中文标题】如何将破折号 (-) 的所有实例替换为 pandas 数据帧中字符串中间的数字零 (0)?【英文标题】:How do i replace all instances of a dash (-) with the number zero (0) in the middle of a string in pandas dataframe? 【发布时间】:2020-02-22 00:18:15 【问题描述】:

我有一列有 5 个数字,然后是破折号,然后是另外 5 个数字,例如 44004-23323。我想删除中间的那个破折号。我希望输出是这样的 44004023323 我在下面尝试了这段代码,但它不起作用。

df['Lane'] = df['Lane'].apply(lambda x: "0" if x == "-" else x)

【问题讨论】:

你能发布df['Lane']的内容吗? 【参考方案1】:

.str.replace() 怎么样?

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.replace.html

Pandas: replace substring in string

# see documentation for other parameters, such as regex and case
df['Lane'] = df['Lane'].str.replace('-', '0')

【讨论】:

@JumaHamdan 破折号总是在中间吗?此解决方案将替换字符串中任何位置的所有破折号。【参考方案2】:

试试这个

df['Lane'] = df['Lane'].apply(lambda x: str(x).replace('-','0'))

【讨论】:

以上是关于如何将破折号 (-) 的所有实例替换为 pandas 数据帧中字符串中间的数字零 (0)?的主要内容,如果未能解决你的问题,请参考以下文章

如何替换 Pandas 数据框的字符串列中的文本?

如何将 Pandas 数据框中的负数替换为零

用破折号替换空格并使所有字母变为小写

批量删除目录中所有文件中的空白,并替换为破折号“-”;

用破折号替换 %20

我的 perl 替换破折号模式清除了所有文件内容