1

使用: 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

4

2 に答える 2

5

これは、join を正しく使用していないためです。

リスト内包表記を使用して、DataFrame を必要な列に制限できます。

df[[col for col in cols_to_keep if col not in dummies]]
于 2013-06-08T16:53:46.337 に答える
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
于 2013-06-08T16:55:31.147 に答える