我试图将新行中的每一行的值组合在一起。 Add only all string values of pandas row as list in a new column不适用于此项目,因此我尝试了一些不同的操作,但结果却很奇怪。
这是一个示例数据集:
data = pd.DataFrame({'Id' : ['001','002', '003'], 'pred_m1' : [3,2,4], 'pred_m2' : [5,6,4], 'pred_m3' : [6,4,6]})
我想要的是:
data = pd.DataFrame({'Id' : ['001','002', '003'], 'pred_list' : [[3,5,6],[2,6,4],[4,4,6]]})
我已经做到了:
for i in data:
data['pred_list'] = list(pd.DataFrame(data['pred_m1'], data['pred_m2'], data['pred_m3']))
print(data)
但是它给了我一个奇怪的输出,我不明白出了什么问题
Id pred_m1 pred_m2 pred_m3 list
0 001 3 5 6 6
1 002 2 6 4 4
2 003 4 4 6 6
Id pred_m1 pred_m2 pred_m3 list
0 001 3 5 6 6
1 002 2 6 4 4
2 003 4 4 6 6
Id pred_m1 pred_m2 pred_m3 list
0 001 3 5 6 6
1 002 2 6 4 4
2 003 4 4 6 6
Id pred_m1 pred_m2 pred_m3 list
0 001 3 5 6 6
1 002 2 6 4 4
2 003 4 4 6 6
有人在这个问题上有帮助吗?谢谢!
最佳答案
在将agg
列设置为索引然后在axis=1
之后,可以在Id
上使用reset_index
data.set_index('Id').agg(list,axis=1).reset_index(name='pred_list')
Id pred_list
0 001 [3, 5, 6]
1 002 [2, 6, 4]
2 003 [4, 4, 6]
关于python - 将一行的所有值作为列表添加到新列中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59754358/