从split()的第一个值在DF中创建新列

2024-09-28 23:21:46 发布

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

我正在尝试从现有列创建一个新列

result['details.dealReference'].str.split('-')

这将返回一个列表列表

0     [Gen1, ImfcGKceLY]
1     [Gen2, jxoKLGmLKa]
2     [Gen5, XGbTqEJxVh]
3     [Gen5, UNqZFhLLct]
4     [Gen2, OKybhoAxew]
5     [Gen8, TgmOLWHiDr]

像这样做

result['details.dealReference'].str.split('-')[0][0] 

返回所需的值,但仅从第一行返回。理想情况下我想要的是

result['newColumn'] = result['details.dealReference'].str.split('-')<insert magic here>

其中新列包含

0     Gen1
1     Gen2
2     Gen5
3     Gen5
4     Gen2
5     Gen8

我怎样才能做到这一点?你知道吗


Tags: 列表resultdetailssplitstrgen2gen1gen8
1条回答
网友
1楼 · 发布于 2024-09-28 23:21:46

您可以应用lambda来获取每个字符串的第一个元素:

result['newColumn'] = result['details.dealReference'].apply(lambda x: x.split('-', maxsplit=1)[0])

或者,如果result['details.dealReference']已经是一列列表,那么:

result['newColumn'] = result['details.dealReference'].apply(lambda x: x[0])

相关问题 更多 >