我有以下数据框:
name age year salary1 salary2 salary3 salary4
Rodrigo 28 2021 1945 2312 4567 3214
Neil 26 2021 3546 6657 -3200 1855
Loti 34 5500 4671 3895 5512 7864
...
当这是结果输出时,我想创建一个新列,该列将包含列salary1,salary2,salary3 和salary4 的值列表:
name age year salary1 salary2 salary3 salary4 new_colum
Rodrigo 28 2021 1945 2312 4567 3214 [1945,2312,4567,3214]
Neil 26 2021 3546 6657 -3200 1855 [3546,6657,-3200,1855]
Loti 34 2021 4671 3895 5512 7864 [4671,3895,5512,7864]
我尝试通过将每列的类型更改为字符串然后添加它们来连接相关列:
df['new_column'] = df['salary1'].astype(str) + ',' + \
df['salary2'].astype(str) + ',' + \
df['salary3'].astype(str) + ',' + \
df['salary4'].astype(str)
确实连接了列,但不会使它们成为列表,并且在我仍然需要数字时将类型更改为字符串。
我的问题是如何创建包含四个列值列表的新列?
答案 0 :(得分:2)
试试这个:
df['new_column'] = df[['salary1', 'salary2', 'salary3', 'salary 4']].values.tolist()
答案 1 :(得分:1)
使用 apply
的另一种可能性是
df['new_col'] = df[['salary1', 'salary2', 'salary3', 'salary4']].apply(lambda r: list(r), axis=1)
但是请注意,这可能比另一个答案中建议的使用 .values.tolist()
而不是 .apply
慢。