根据指定列中的值将行插入数据框

时间:2019-04-12 20:40:28

标签: python pandas

不确定这是否可能,但是当“策略”列中的值更改时,我试图将数据框的标题插入新行。

当前输出:

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

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

这是使用reindexingpandas.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