Python 3.x 如何使用pandas在dataframe的列上迭代
我有一个包含八列的数据框架,我想迭代每一列,并将每次迭代的数据保存在新变量中。也就是说,在第一次迭代中,第一列值将保持不变,其他列值将更改为无,并将此数据框另存为新数据框。在第二次迭代中,只有第二列将保存其他列值更改为无的值,并另存为新数据框。因此,最后我将得到8个数据框,每个数据框只有一个带有值的列和其他列将保留无值。通过dict comprehension创建数据帧字典: 样本: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'),
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