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

时间:2018-01-29 08:07:14

标签: 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

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以应用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])