Homesand
Homesand

Reputation: 423

How to split rows in pandas with special condition of date?

I have a DataFrame like:

Code          Date          sales
1             2/2013        10
1             3/2013        11
2             3/2013        12
2             4/2013        14
...

I want to convert it into a DataFrame with a timeline, code, and sales of each type of item:

Date       Code      Sales1     Code   Sales2
2/2013     1         10         NA     NA
3/2013     1         11         2      12
4/2013     NA        NA         2      14
....

or into a simpler way:

Date       Code      Sales1     Date      Code   Sales2    .....
2/2013     1         10         3/2013    2      12
3/2013     1         11         4/2013    2      14

or even into the simplest way, splitting into many small DataFrames

Upvotes: 1

Views: 63

Answers (2)

Homesand
Homesand

Reputation: 423

Actually, I was stupid to split the data that way, I rethink and solve the problem with the pivot_table

 pd.pivot_table(df, values = ['sales'], index = ['code'], columns = ['date'])

and the result should be like.

         sum
 date    2/2013    3/2013     4/2013 ....
 code
 1       10        11         NaN
 2       NaN       12         14
 ...

Upvotes: 0

BENY
BENY

Reputation: 323236

IIUC using concatwith the groupby result

df.index=df.groupby('Code').cumcount()# create the key for concat
pd.concat([x for _,x in df.groupby('Code')],1)
Out[392]: 
   Code    Date  sales  Code    Date  sales
0     1  2/2013     10     2  3/2013     12
1     1  3/2013     11     2  4/2013     14

Upvotes: 2

Related Questions