如何拆分字符串的DataFrame列以在子字符串第n次出现后获取所有内容

2024-04-26 12:17:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个df:

               id value
0      a_john_doe   123
1  b_robert_frost   456

我想覆盖“id”列,以便在第二个“\u1”之后切掉所有内容以获得以下内容:

               id value
0           a_john   123
1         b_robert   456

我正在尝试进行拆分,然后重新加入,但它给出了一个错误:

TypeError: sequence item 0: expected str instance, list found

我可以在硬编码字符串上执行相同的操作,因此我不太确定哪里出错:

print('_'.join('a_john_doe'.split('_')[:2]))
# test gives back 'a_john'

df = pd.DataFrame({'id':['a_john_doe','b_robert_frost'], 'value':['123','456']})
df.id = '_'.join(df.id.str.split('_')[:2])
print(df)

Tags: id内容dfvalue错误johnrobertsplit
1条回答
网友
1楼 · 发布于 2024-04-26 12:17:47

让我们做:

df['id'] = ['_'.join(x.split('_')[:2]) for x in df['id']]

或者按照你的风格:

df['id'] = df['id'].str.split('_')[:2].agg('_'.join)

输出:

         id  value
0    a_john    123
1  b_robert    456

相关问题 更多 >