Pandas - 如何在每次添加列时重复数据帧 n 次

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)

我怎样才能得到这个

Erf*_*fan 6

使用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)