Pandas使用变量作为列名

时间:2016-03-26 12:30:39

标签: python-3.x pandas

给出以下数据框:

import pandas as pd
import numpy as np
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

如何通过变量访问列?

我试过了:

cols='A','B'
df[cols]

...导致了这个:

KeyError: ('A', 'B')

奖金问题: 如果我的数据框架是这样的,那该怎么办?:

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

df

    A   B   C   D   E   F
0   1   4   7   1   5   7
1   2   5   8   3   3   4
2   3   6   9   5   6   3

我想这样做?:

cols=['A','B']
cols2=['C','D']
df[cols,'F',cols2]

提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以按list列名称尝试子集:

cols=['A','B']
print df[cols]
   A  B
0  1  4
1  2  5
2  3  6

与:

相同
print df[['A','B']]
   A  B
0  1  4
1  2  5
2  3  6

奖金回答:

cols=['A','B']
cols2=['C','D']

allcols = cols + ['F'] + cols2
print df[allcols]
   A  B  F  C  D
0  1  4  7  7  1
1  2  5  4  8  3
2  3  6  3  9  5