在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
添加相应列的标题。
答案 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