Question: I have this DF: `Columns: df=pd.DataFrame(columns=["a","b","c","d","e","f","g"])`

and this : `data=["a:42","b:43","c:22","d:41","a:21","b:14" ,"c:12","e:14" ,"f:7","a:0" ,"d:1","f:3","a:6" ,"b:0","c:9","g:8" ]`

I need

```
for d in data:
   spli=d.split(":")
   colum=spli[0]
   value=spli[1]
   df[colum] = value

```

waiting for this result

```
["a"  "b"   "c"   "d"   "e"    "f"    "g"  ]
  42   43    22    41   nan    nan     nan
  21   14    12    nan   14     7      nan
  0    nan   nan    1    nan     3     nan
  6     0     9    nan   nan   nan      8

```

Answer: 
`.loc` can help you here:

```
last_c = 'z'   # Enter some ordinally large string 
r = -1
for x in data:
    c,v = x.split(':')

    if c <= last_c:
        r += 1

    df.loc[r,c] = v
    last_c = c

     a    b    c    d    e    f    g
0   42   43   22   41  NaN  NaN  NaN
1   21   14   12  NaN   14    7  NaN
2    0  NaN  NaN    1  NaN    3  NaN
3    6    0    9  NaN  NaN  NaN    8
4  NaN   14    9  NaN  NaN  NaN  NaN

```

I added an additional line to show a new line (row) starting with something other than `'a'`.
Is it posible to convert your data to a list of dictionary like:

```
data = [{"a":42,"b":43,"c":22,"d":41}, 
 {"a":21,"b":14 ,"c":12,"e":14 ,"f":7},
 {"a":0 ,"d":1,"f":3},
 {"a":6 ,"b":0,"c":9,"g":8}]

```

Then, you can create a dataframe by:

```
df=pd.DataFrame(data).

```