Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:从其他Dataframe中的某些列创建新Dataframe_Python_Pandas - Fatal编程技术网

Python 熊猫:从其他Dataframe中的某些列创建新Dataframe

Python 熊猫:从其他Dataframe中的某些列创建新Dataframe,python,pandas,Python,Pandas,我有一个熊猫数据框,旧的,像这样: col1 col2 col3 0 1 2 3 1 2 3 4 2 3 4 5 我想创建一个新的dataframe new,它从旧数据框复制col2,并将-1作为其其他列的伪值填充: col2 new_col1 new_col3 0 2 -1 -1 1 3 -1 -1 2 4 -1 -1 我想我可以一行一行地迭代,并为不在旧图中的任何列填写-1,但必须有一

我有一个熊猫数据框,旧的,像这样:

  col1 col2 col3
0   1   2   3
1   2   3   4
2   3   4   5
我想创建一个新的dataframe new,它从旧数据框复制col2,并将-1作为其其他列的伪值填充:

  col2 new_col1 new_col3
0   2   -1       -1
1   3   -1       -1
2   4   -1       -1
我想我可以一行一行地迭代,并为不在旧图中的任何列填写-1,但必须有一种更好的,可能是矢量化的方法

想法

谢谢

您可以重新编制索引

你可以重新索引

IIUC:

或者更一般地说,要将除col2之外的所有列更改为-1:

IIUC:

或者更一般地说,要将除col2之外的所有列更改为-1:

也许:

输出:

   col2  new_col2  new_col3
0     2        -1        -1
1     3        -1        -1
2     4        -1        -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
@谢谢你告诉我

分配
您在哪里指定非旧列的值?您在哪里指定非旧列的值?无需执行[-1]*3:new=pd.DataFrame{'col2':old['col2'],'new_col2':-1,'new_col3':-1}无需执行[-1]*3:new=pd.DataFrame{'col2':old['col2'],'new_col2':-1,'new_col3':-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
df[['col2']].assign(new_col1=-1, new_col3=-1)