在Dataframe中添加常量列后,它会覆盖前一个

时间:2016-02-07 20:12:48

标签: python pandas dataframe

'tell_skills'是一个字典,它与a,b,c列形成数据框。现在我想添加另一个值为'z'的常量列d。有两个不同的数据帧,有两个不同的z值我想连接。 “最终”数据框显示最后一列“d”仅为150而不是150和133分为相同的行数。

import pandas as pd

tell_skills = {1: ("NY", "LA", "HO"), 2: ("SA","DA", "AS")}
df_company = pd.DataFrame.from_dict(tell_skills, orient='index')
df_company.columns = ['a','b','c']
z = 133
df_company['d'] = z
df_comp=df_company
z = 150
df_company['d'] = z
final = pd.concat([df_comp,df_company])

1 个答案:

答案 0 :(得分:0)

使用时

df_comp=df_company

它使df_comp成为原始df_company的第二个引用,所以当

`df_comp['d'] = z` 

基本上会设置df_company['d'] = z,以制作可以使用copy模块的dataFrame的副本:

import copy
df_comp = copy.deepcopy(df_company) 

有关deepcopy()copy()

的详细信息,请参阅https://docs.python.org/2/library/copy.html

编辑:正如Jezzamon已指出DataFrame对象有一个.copy()方法,最好使用:

df_comp = df_company.copy()