大熊猫:从其他数据框中的某些列创建新数据框

时间:2018-09-11 00:49:36

标签: python pandas

我有一个old这样的熊猫数据框,

  col1 col2 col3
0   1   2   3
1   2   3   4
2   3   4   5

我想创建一个新的数据帧new,该数据帧从col2复制old并填充-1作为其他列的伪值:

  col2 new_col1 new_col3
0   2   -1       -1
1   3   -1       -1
2   4   -1       -1

我想我可以逐行进行迭代,并为-1以外的任何列填写old,但必须找到一种更好的,可能的矢量化方法。

想法?

谢谢!

4 个答案:

答案 0 :(得分:3)

您可以执行git rebase

reindex

答案 1 :(得分:2)

assign

df[['col2']].assign(new_col1=-1, new_col3=-1)

答案 2 :(得分:1)

IIUC:

new = old.copy()
new[['col1','col3']] = -1

>>> new
   col1  col2  col3
0    -1     2    -1
1    -1     3    -1
2    -1     4    -1

或更笼统地说,将col2以外的所有列更改为-1

new = old.copy()
new[list(set(new.columns) - {'col2'})] = -1

答案 3 :(得分:1)

也许:

new=pd.DataFrame({'col2':old['col2'],'new_col2':-1,'new_col3':-1})
print(new)

输出:

   col2  new_col2  new_col3
0     2        -1        -1
1     3        -1        -1
2     4        -1        -1

@sacul感谢您告诉我