我有一个包含多个列的数据框,我有兴趣从其中删除一列,然后用该列创建一个新的数据框。 我的数据框是
category_id category_name channel_id
24 Entertainment UCv1ZjbkebUwVOJCgtstOBZQ
我正在创建一个新的数据框,希望其中的category_id可创建1万行。
df1 = pd.DataFrame({'category_id': [df['category_id'] for x in range(10000)]})
df1.head()
这将创建一个具有10k行的数据框,但是我正在该数据框中获取的值 是
category_id
0 178 10 215 10 251 10 312 1...
1 178 10 215 10 251 10 312 1...
2 178 10 215 10 251 10 312 1...
3 178 10 215 10 251 10 312 1...
4 178 10 215 10 251 10 312 1...
这是错误的,因为我想要
之类的值category_id
0 10
1 10
2 10
3 10
4 10
我通过从df5 = pd.DataFrame({'category_id': df4['category_id'] for x in range(10000)})
df5.head()
删除列表理解来对此数据帧进行了更改,它解决了此错误,但是没有创建10k记录。
有什么可以解决的呢?
答案 0 :(得分:1)
我认为您需要Series.repeat
:
print (df)
category_id category_name channel_id
0 10 Entertainment UCv1ZjbkebUwVOJCgtstOBZQ
1 24 Entertainment UCv1ZjbkebUwVOJCgtstOBZQ
N = 5
df5 = df['category_id'].repeat(N).reset_index(drop=True).to_frame()
print (df5)
category_id
0 10
1 10
2 10
3 10
4 10
5 24
6 24
7 24
8 24
9 24