Python - 创建一个空的Pandas DataFrame并使用For循环从另一个DataFrame填充

时间:2013-06-08 16:17:23

标签: python-2.7 pandas

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

我尝试创建一个空的DataFrame,然后根据for loop从另一个数据框填充它。

我发现当我构建DataFrame然后使用for loop时,如下所示:

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

结果为空DataFrame,但要从其他DataFrame添加相应列的标题。

2 个答案:

答案 0 :(得分:5)

那是因为您使用的连接不正确。

您可以使用列表推导将DataFrame限制为所需的列:

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

答案 1 :(得分:2)

如何根据您想要保留的列创建新框架,而不是先创建一个空框架?

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