2017-06-01 25 views
1

我已經從文本文件由2 n個數據幀使用移動列

with open('test.txt') as a: Thresholds = pd.read_table(a, sep=',')

其中第一行是行每次引入新文件時可能會有所不同,並且數據由一行1和0組成。

A B C D E F G 
    1 0 0 1 1 0 1 

我試圖然後刪除所有與0的列或移動所有列與1到一個空的數據框。我習慣於在R或matlab中編寫代碼,並且已經在這兩種語言中完成了這些工作,但是我不太清楚如何去編寫Python。

任何幫助將不勝感激!

回答

1

讓我們用布爾索引上,然後df.columns下降,從數據幀那些列:

df.drop(df.columns[~df.iloc[0].astype(bool)],axis=1) 

輸出:

A D E G 
0 1 1 1 1 
0
df = pd.DataFrame({'A': np.random.randint(0,2,1), 
     'B': np.random.randint(0,2,1), 
     'C': np.random.randint(0,2,1), 
     'D': np.random.randint(0,2,1), 
     'E': np.random.randint(0,2,1), 
     'F': np.random.randint(0,2,1), 
     'G': np.random.randint(0,2,1)}) 

mask = df.ix[0] == 1 
df = df[df.columns[mask]] 

這將返回:

C D F 
0 1 1 1 
+0

DF .ix在大熊貓0.20.1 ...中棄用C:\ Program Files \ Anaconda3 \ lib \ site-packages \ ipykernel \ __ main__.py:1:棄用警告: .ix已被棄用。請使用 .loc作爲基於標籤的索引,或使用 .iloc作爲位置索引 –