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)