不确定这是否可能,但是当“策略”列中的值更改时,我试图将数据框的标题插入新行。
当前输出:
Amount Code Strategy
1,000 Fund_1 A
2,000 Fund_2 A
3,000 Fund_1 B
4,000 Fund_2 B
5,000 Fund_1 C
6,000 Fund_2 C
所需的输出:
Amount Code Strategy
1,000 Fund_1 A
2,000 Fund_2 A
Amount Code Strategy
3,000 Fund_1 B
4,000 Fund_2 B
Amount Code Strategy
5,000 Fund_1 C
6,000 Fund_2 C
有一种简单的方法吗?
答案 0 :(得分:1)
这是使用reindexing
和pandas.concat
来达到此效果的一种方法:
d = {x:x for x in df.columns}
header_rows = df.drop_duplicates('Strategy').drop(0).assign(**d)
header_rows.index -= 0.5
df_new = pd.concat([df, header_rows]).sort_index().reset_index(drop=True)
print(df_new)
Amount Code Strategy
0 1,000 Fund_1 A
1 2,000 Fund_2 A
2 Amount Code Strategy
3 3,000 Fund_1 B
4 4,000 Fund_2 B
5 Amount Code Strategy
6 5,000 Fund_1 C
7 6,000 Fund_2 C