我是python的新手,正在为一个非常基本的概念而苦苦挣扎,所以请多多包涵。请接受我的道歉。
可吸入剂: 我有一个现有的数据框 我想采用现有的数据框并基于它创建两个单独的版本(变量“ df_1”和“ df_2”)。它们将是相同的,除了它们具有不同的country_id。
请参阅数据帧1(“ df_1”)的所需输出
name occupation country_id
mike plumber 123
mary plumber 123
joe plumber 123
请参阅数据帧2(“ df_2”)的所需输出
name occupation country_id
mike plumber 456
mary plumber 456
joe plumber 456
我的代码
country_id_1 = 123
country_id_2 = 456
df_0 =
name occupation
mike plumber
mary plumber
joe plumber
df_1 = df_0
df_2 = df_0
df_1['country_id'] = df_1.shape[0]*[country_id_1]
df_2['country_id'] = df_2.shape[0]*[country_id_2]
当我打印时我得到这个结果
print(df_1['country_id'] = df_1.shape[0]*[country_id_1])
print(df_2['country_id'] = df_2.shape[0]*[country_id_2])
name occupation country_id
mike plumber 456
mary plumber 456
joe plumber 456
name occupation country_id
mike plumber 456
mary plumber 456
joe plumber 456
显然是指我使用的最后一个变量(country_Id_2)。我确定循环/迭代可以解决此问题,但我确实需要在一天结束时使用两个变量。任何帮助将不胜感激。
答案 0 :(得分:0)
使用assign
创建一个新列,它将为您创建适当的副本:
country_id_1 = 123
country_id_2 = 456
df_1 = df_0.assign(country_id=country_id_1)
df_2 = df_0.assign(country_id=country_id_2)
>>> df_1
name occupation country_id
0 mike plumber 123
1 mary plumber 123
2 joe plumber 123
>>> df_2
name occupation country_id
0 mike plumber 456
1 mary plumber 456
2 joe plumber 456
答案 1 :(得分:0)
您可以将.copy()
用作广播,并将df
作为现有数据框:
df1 = df.copy()
df1['country_id'] = 123
df2 = df.copy()
df2['country_id'] = 456