首页 > 解决方案 > 如何根据条件在 pandas 数据帧上应用字符串拆分方法?

问题描述

我想替换我的数据框中以错误格式输入的一些值。例如,850/07-498745 应该是 07-498745。现在,我成功地使用了字符串拆分来做到这一点。但是,它将所有以前正确格式化的字符串转换为 NaN。我试图基于一个条件,但我仍然有同样的问题。我该如何解决?

示例输入:

mylist = ['850/07-498745', '850/07-148465', '07-499015']
df = pd.DataFrame(mylist)
df.rename(columns={ df.columns[0]: "mycolumn" }, inplace = True)

我的尝试:

df['mycolumn'] = df[df.mycolumn.str.contains('/') == True].mycolumn.str.split('/', 1).str[1]
df

输出:

在此处输入图像描述

我想要什么:

在此处输入图像描述

标签: pythonstringpandassplitdata-cleaning

解决方案


您可以使用split/从列表中获取最后一个返回字符串:

df['mycolumn'].str.split('/').str[-1]

0    07-498745
1    07-148465
2    07-499015
Name: mycolumn, dtype: object

推荐阅读