我有一個像這樣的 Pandas 資料框:
id A B
0 2 2
1 1 1
2 3 3
3 7 7
我想在所選行下方復制第一行 3 次:
id A B
0 2 2
1 2 2
2 2 2
3 2 2
4 1 1
5 3 3
6 7 7
Pandas 庫中是否已經存在一種方法?
uj5u.com熱心網友回復:
使用reindex和Index.repeat創建您的資料框:
>>> df.reindex(df.index.repeat([3] [1] * (len(df) - 1)))
id A B
0 0 2 2
0 0 2 2
0 0 2 2
1 1 1 1
2 2 3 3
3 3 7 7
其他方式:
>>> df.loc[[df.index[0]]*3 df.index[1:].tolist()]
id A B
0 0 2 2
0 0 2 2
0 0 2 2
1 1 1 1
2 2 3 3
3 3 7 7
@MuhammadHassan 提出的更通用的方法:
row_index = 0
repeat_time = 3
>>> df.reindex(df.index.tolist() [row_index]*repeat_time).sort_index()
id A B
0 0 2 2
0 0 2 2
0 0 2 2
0 0 2 2
1 1 1 1
2 2 3 3
3 3 7 7
uj5u.com熱心網友回復:
沒有內置的方法可以做到這一點。但是,您可以創建索引串列,并使用df.loc df.index.repeat:
new_df = df.loc[df.index.repeat([4] [1] * (len(df) - 1))].reset_index(drop=True)
輸出:
>>> new_df
id A B
0 0 2 2
1 0 2 2
2 0 2 2
3 0 2 2
4 1 1 1
5 2 3 3
6 3 7 7
uj5u.com熱心網友回復:
讓我們試試
n=3
row = 0
df = df.append(df.loc[[row]*(n-1)]).sort_index()
df
id A B
0 0 2 2
0 0 2 2
0 0 2 2
1 1 1 1
2 2 3 3
3 3 7 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392006.html
下一篇:使用布爾系列索引多索引
