我正在尝试从现有的列中创建一个新列
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
我怎样才能做到这一点?
答案 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])