Given this data frame:

```
import pandas as pd
df=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
df
    A   B   C
0   1   4   7
1   2   5   8
2   3   6   9

```

I'd like to create 3 new data frames; one from each column.
I can do this one at a time like this:

```
a=pd.DataFrame(df[['A']])
a
    A
0   1
1   2
2   3

```

But instead of doing this for each column, I'd like to do it in a loop.

Here's what I've tried:

```
a=b=c=df.copy()
dfs=[a,b,c]
fields=['A','B','C']
for d,f in zip(dfs,fields):
    d=pd.DataFrame(d[[f]])

```

...but when I then print each one, I get the whole original data frame as opposed to just the column of interest.

```
a
        A   B   C
    0   1   4   7
    1   2   5   8
    2   3   6   9

```

**Update:**
My actual data frame will have some columns that I do not need and the columns will not be in any sort of order, so I need to be able to get the columns by name.

Thanks in advance!