在大熊猫中,我目前有一个数据框,其中包含一串字符串:{城市,郊区,农村}。我要创建的列以第一列为条件(即城市,郊区,农村与相应的颜色相关联){珊瑚色,天蓝色,金色}
我尝试复制第一列,然后使用.replace,但是我的新列似乎现在返回NaN值而不是颜色。
new_column = merge_table["type"]
merge_table["color"] = new_column
color_df = merge_table["color"].replace({'Urban': 'Coral', 'Suburban': 'Skyblue', 'Rural': 'Gold'})
data = pd.DataFrame({'City Type': type,
'Bubble Color': color_df
})
data.head()
答案 0 :(得分:1)
您可以
merge_table['New col']=merge_table["color"].replace({'Urban': 'Coral', 'Suburban': 'Skyblue', 'Rural': 'Gold'})
答案 1 :(得分:0)
好的。将来,值得使用“代码示例”键入代码,以便我们可以更轻松地查看您的代码。
很多地方可以改善您的代码。首先,您需要一行完成全部操作:
merge_table["color"] = merge_table["type"].map(mapping_dictionary)
Series.map()大约比Series.replace()快4倍。
其他提示:
切勿使用type作为变量名,而应使用诸如city_type之类的更具体的名称。类型已经是标准的内置方法
data = pd.DataFrame({'City Type': city_type, 'Bubble Color': color_df})
如果要复制列,请使用:
a_series = df['column_name'].copy()