I am working with the following pandas dataframe:
time market_state
5:00:00 open
6:00:00 continuous
7:30:00 continuous
9:12:00 unscheduled
10:02:02 intraday
10:05:03 intraday
11:00:33 closed
My python code removes all rows that have consecutive market_state
s, like intraday
and continuous
in the above example.
So i want to store the two rows with market_state intraday
, and this is what I use:
store_intraday_market_state = df.loc[df['market_state'] == 'intraday']
So store_intraday_market_state
looks like this:
time market_state
10:02:02 intraday
10:05:03 intraday
The input above (after some python code) becomes:
time market_state
5:00:00 open
7:30:00 continuous
9:12:00 unscheduled
10:02:02 intraday
11:00:33 closed
As mentioned the python code combines all rows with consecutive market_states. But now I want to replace the one tow of intraday
with the two lines that I stored store_intraday_market_state
.
Is there some code where I can do this replacing? *Using the market_state
intraday
?
CodePudding user response:
If I undestand the question correctly, once you have extracted:
store_intraday_market_state into another dataframe, you can drop such rows from the original dataframe:
df = df[df['market_state'] != 'intraday']
and then do:
df = pandas.concat([df, store_intraday_market_state])
resulting dataframe should contain all the rows from original dataframe except the ones containing intraday and all rows from the stored dataframe with rows containing intraday.
edit: if you want it sorted, you can then do:
df.sort_values(by='time', ascending=True, inplace=True)