Vis*_*App 3 python dataframe pandas
如何在每次重复中添加新列的同时重复数据框中的值 n 次
我已经尝试并获得了 n 次重复值,但我无法弄清楚如何添加新列。这是我随机生成的温度的初始数据框 -
df1 =
temp
0 30
1 40
2 50
3 60
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码复制它 n 次 -
df2 = pd.DataFrame(np.repeat(df.values,2,axis=0))
现在我希望新的 df 有一个名为 city 的新列,并且每次新的重复都添加一个在以下列表中指定的不同值 -
cities = ['Bangalore', 'Hyderabad'] //no. of cities will be same as n
expected output -
df2 =
temp city
0 30 Bangalore
1 40 Bangalore
2 50 Bangalore
3 60 Bangalore
4 30 Hyderabad
5 40 Hyderabad
6 50 Hyderabad
7 60 Hyderabad
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到这个
DataFrame.assign& pd.concat:我们遍历您cities列表中的每个城市,并将assign其作为一个新列。然后我们使用concat将单独的数据帧连接到一个最终的数据帧。
final = pd.concat([df1.assign(city=c) for c in cities], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
输出
temp city
0 30 Bangalore
1 40 Bangalore
2 50 Bangalore
3 60 Bangalore
4 30 Hyderabad
5 40 Hyderabad
6 50 Hyderabad
7 60 Hyderabad
Run Code Online (Sandbox Code Playgroud)