我有一个 python 数据框,其中一列的元素以 pjp- 开头并以 | 结尾,例如 pjp-XYA|,我想删除 pjp- 中的所有内容,直到第一次出现“|” 在熊猫数据框中。我试过这样做,但我收到一个错误,说它只适用于字符串。f = pd.read_csv("test.csv",delimiter=",")df = pd.DataFrame(f)if df.str.startswith('pjp-'): df = df.replace(["pjp-*|"],[""])print(df)头(df)Quantity code boxes34 pjp-custom|3cex 1020 pjp-cusm|4cex 812 pjp-ctom|5cex 640 pjp-custom|6cex 14期望的输出Quantity code boxes34 3cex 1020 4cex 812 5cex 640 6cex 14
2 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
这正是您希望它在 1 行代码中执行的操作:
#Theres actually 4 things going on in this 1 line of code
df['Code_Boxes'] = (((df['Code_Boxes'].str.rsplit('pjp-')).str[1]).str.rsplit('|')).str[1]
只有当你说的是真的 'pjp-' 总是在前面并且 '|' 时,这才有效 是在您要拆分的末尾。只是为了让您了解我所做的事情,请参阅以下 4 个步骤。
#these 4 things can actually be done in one line, but its easy to see what we're doing this way.
df['Code_Boxes'] = df['Code_Boxes'].str.rsplit('pjp-')
df['Code_Boxes'] = df['Code_Boxes'].str[1]
df['Code_Boxes'] = df['Code_Boxes'].str.rsplit('|')
df['Code_Boxes'] = df['Code_Boxes'].str[1]
www说
TA贡献1775条经验 获得超8个赞
我认为你实际上应该这样做:
df[column] = df[column].str.replace("pjp-*|","")
希望它有帮助,我们需要更多信息在这里
添加回答
举报
0/150
提交
取消