0
votes

If I have a data frame like that:

Sales Day_Of_Week

1290 Monday

5432 Tuesday

67543 Friday

2121 Monday

31322 Saturday

2323 Sunday

7895 Monday

4342 Friday

11238 Saturday

How to split "Day_Of_Week" to many columns to be the data frame like that:

df = Sales Day_Of_Week Monday Tuesday Friday Saturday Sunday

  1290    Monday           1       0           0        0         0

  5432   Tuesday           0       1           0        0         0

  67543  Friday            0       0           1        0         0

   2121  Monday            1       0           0        0         0

  31322 Saturday           0       0           0        1         0

  2323  Sunday             0       0           0        0         1

  7895  Monday             1       0           0        0         0

  4342  Friday             0       0           1        0         0

  1238  Saturday           0       0           0        1         0
2

2 Answers

0
votes
import numpy as np

df = '1        0        0         0           0  '.split()

c=0
for i in df:
    c+=1
    i = int(i)
    if(i==1 and c==1):
        print("Monday")
    if(i==1 and c==2):
        print("Tuesday")
    if(i==1 and c==3):
        print("Friday")
    if(i==1 and c==4):
        print("Saturday")        
    if(i==1 and c==5):
        print("Sunday")  
>>Monday

or in other direction:

df = "Monday"
output = np.zeros(5)
if(df == "Monday"):
    output[0] = 1

print(output)
>>[1. 0. 0. 0. 0.]
0
votes
import numpy as np

dow = []
dow.append("1290 Monday")
dow.append("5432 Tuesday")
dow.append("67543 Friday")
dow.append("2121 Monday")
dow.append("31322 Saturday")
dow.append("2323 Sunday")
dow.append("7895 Monday")
dow.append("4342 Friday")
dow.append("11238 Saturday")

# Monday Tuesday Friday Saturday Sunday
output = [0] * 7
for entry in dow:
    print(entry)
    output = [0] * 7
    first_split = entry.split()

    if(first_split[1] == "Monday"):
        output[0] = first_split[0]
        output[1] = str("Monday")
        output[2] = 1

    if(first_split[1] == "Tuesday"):
        output[0] = first_split[0]
        output[1] = str("Tuesday")
        output[3] = 1        

    if(first_split[1] == "Friday"):
        output[0] = first_split[0]
        output[1] = str("Friday")
        output[4] = 1        

    if(first_split[1] == "Saturday"):
        output[0] = first_split[0]
        output[1] = str("Saturday")
        output[5] = 1                

    if(first_split[1] == "Sunday"):
        output[0] = first_split[0]
        output[1] = str("Sunday")
        output[6] = 1        

    print(output)

the output is:

1290 Monday
['1290', 'Monday', 1, 0, 0, 0, 0]
5432 Tuesday
['5432', 'Tuesday', 0, 1, 0, 0, 0]
67543 Friday
['67543', 'Friday', 0, 0, 1, 0, 0]
2121 Monday
['2121', 'Monday', 1, 0, 0, 0, 0]
31322 Saturday
['31322', 'Saturday', 0, 0, 0, 1, 0]
2323 Sunday
['2323', 'Sunday', 0, 0, 0, 0, 1]
7895 Monday
['7895', 'Monday', 1, 0, 0, 0, 0]
4342 Friday
['4342', 'Friday', 0, 0, 1, 0, 0]
11238 Saturday
['11238', 'Saturday', 0, 0, 0, 1, 0]