Python 3.x 如何使用pandas在dataframe的列上迭代

Python 3.x 如何使用pandas在dataframe的列上迭代,python-3.x,pandas,jupyter-notebook,Python 3.x,Pandas,Jupyter Notebook,我有一个包含八列的数据框架,我想迭代每一列,并将每次迭代的数据保存在新变量中。也就是说,在第一次迭代中,第一列值将保持不变,其他列值将更改为无,并将此数据框另存为新数据框。在第二次迭代中,只有第二列将保存其他列值更改为无的值,并另存为新数据框。因此,最后我将得到8个数据框,每个数据框只有一个带有值的列和其他列将保留无值。通过dict comprehension创建数据帧字典: 样本: df = pd.DataFrame({'A':list('abcdef'),

我有一个包含八列的数据框架,我想迭代每一列,并将每次迭代的数据保存在新变量中。也就是说,在第一次迭代中,第一列值将保持不变,其他列值将更改为无,并将此数据框另存为新数据框。在第二次迭代中,只有第二列将保存其他列值更改为无的值,并另存为新数据框。因此,最后我将得到8个数据框,每个数据框只有一个带有值的列和其他列将保留无值。

通过dict comprehension创建数据帧字典:

样本

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0]})

print (df)
   A  B  C  D
0  a  4  7  1
1  b  5  8  3
2  c  4  9  5
3  d  5  4  7
4  e  5  2  1
5  f  4  3  0

d = {x: df[[x]].reindex(columns=df.columns, fill_value=None) for x in df.columns}
#print (d)

print (d['A'])
   A   B   C   D
0  a NaN NaN NaN
1  b NaN NaN NaN
2  c NaN NaN NaN
3  d NaN NaN NaN
4  e NaN NaN NaN
5  f NaN NaN NaN

print (d['B'])
    A  B   C   D
0 NaN  4 NaN NaN
1 NaN  5 NaN NaN
2 NaN  4 NaN NaN
3 NaN  5 NaN NaN
4 NaN  5 NaN NaN
5 NaN  4 NaN NaN
df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0]})

print (df)
   A  B  C  D
0  a  4  7  1
1  b  5  8  3
2  c  4  9  5
3  d  5  4  7
4  e  5  2  1
5  f  4  3  0

d = {x: df[[x]].reindex(columns=df.columns, fill_value=None) for x in df.columns}
#print (d)

print (d['A'])
   A   B   C   D
0  a NaN NaN NaN
1  b NaN NaN NaN
2  c NaN NaN NaN
3  d NaN NaN NaN
4  e NaN NaN NaN
5  f NaN NaN NaN

print (d['B'])
    A  B   C   D
0 NaN  4 NaN NaN
1 NaN  5 NaN NaN
2 NaN  4 NaN NaN
3 NaN  5 NaN NaN
4 NaN  5 NaN NaN
5 NaN  4 NaN NaN