繁体   English   中英

将列表扩展到列时复制 pandas dataframe 而不会弄乱它

[英]copying pandas dataframe without messing it when extending list to a column

我想要一份 dataframe 的不同副本以将列表扩展到其“父母”列,但问题是复制我知道不起作用的程序,我该怎么办?

当我运行第 5 行但在运行第 6 行(#5 注释)时,它们工作得很好所以问题在 pandas 数据帧中将列表放入列中

moves=pd.DataFrame({"first":[0],"second":[5],'done':[0],'parents':[[-1]],'id':[0]})
# tdf=moves.copy(deep=True) #1
# tdf=moves.copy(deep=False) #2
# tdf=moves.loc[:] #3
# tdf=moves[:] #4
i=0
tdf.loc[i,'parents'].extend([moves.loc[i,'id']]) #5
# tdf.loc[i,'first']=4 #6
print(moves)

并且打印'moves'的结果将有[-1,0],但如果复制做得很好,它会像以前一样有[-1]。 而且我知道第 2 行不适用于原始复制,它会引用所以忽略第 2 行。

如果你想用相同的数据创建一个新的数据框,你可以写在 trf=moves 下面

然后根据您的要求进行更改

Copy 将 dataframe 移动到新的 dataframe (tdf) 并执行扩展操作。

moves=pd.DataFrame({"first":[0],"second":[5],'done':[0],'parents':[[-1]],'id':[0]})
i=0
tdf = moves
tdf.loc[i,'parents'].extend([moves.loc[i,'id']]) #5
# tdf.loc[i,'first']=4 #6

上面的代码为 tdf 提供了以下值

 first  second  done  parents  id
0      0       5     0  [-1, 0]   0

这是你想要的?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM