Python 2.7 Python-创建一个空数据帧,并使用For循环从另一个数据帧填充

Python 2.7 Python-创建一个空数据帧,并使用For循环从另一个数据帧填充,python-2.7,pandas,Python 2.7,Pandas,在Mac OSX Lion上使用:Python 2.7和Pandas 0.11.0 我试图创建一个空数据帧,然后根据for循环从另一个数据帧填充它 我发现,当我构建数据帧,然后使用for循环时,如下所示: data = pd.DataFrame() for item in cols_to_keep: if item not in dummies: data = data.join(df[item]) 结果是一个空的数据框,但包含要从另一个数据框添加的相应列的标题。这是因

在Mac OSX Lion上使用:Python 2.7和Pandas 0.11.0

我试图创建一个空数据帧,然后根据for循环从另一个数据帧填充它

我发现,当我构建数据帧,然后使用for循环时,如下所示:

data = pd.DataFrame()
for item in cols_to_keep:
    if item not in dummies:
        data = data.join(df[item])

结果是一个空的数据框,但包含要从另一个数据框添加的相应列的标题。

这是因为您不正确地使用了join

您可以使用列表理解将数据框限制为所需的列:

df[[col for col in cols_to_keep if col not in dummies]]

这是因为您未正确使用join

您可以使用列表理解将数据框限制为所需的列:

df[[col for col in cols_to_keep if col not in dummies]]

如果只是根据您知道要保留的列创建一个新框架,而不是先创建一个空框架,怎么样

import pandas as pd
import numpy as np

df = pd.DataFrame({'a':np.random.randn(5),
                    'b':np.random.randn(5),
                    'c':np.random.randn(5),
                    'd':np.random.randn(5)})
cols_to_keep = ['a', 'c', 'd']
dummies = ['d']
not_dummies = [x for x in cols_to_keep if x not in dummies]
data = df[not_dummies]
data

          a         c
0  2.288460  0.698057
1  0.097110 -0.110896
2  1.075598 -0.632659
3 -0.120013 -2.185709
4 -0.099343  1.627839

如果只是根据您知道要保留的列创建一个新框架,而不是先创建一个空框架,怎么样

import pandas as pd
import numpy as np

df = pd.DataFrame({'a':np.random.randn(5),
                    'b':np.random.randn(5),
                    'c':np.random.randn(5),
                    'd':np.random.randn(5)})
cols_to_keep = ['a', 'c', 'd']
dummies = ['d']
not_dummies = [x for x in cols_to_keep if x not in dummies]
data = df[not_dummies]
data

          a         c
0  2.288460  0.698057
1  0.097110 -0.110896
2  1.075598 -0.632659
3 -0.120013 -2.185709
4 -0.099343  1.627839