2015-06-22 18 views
2

有沒有辦法刪除具有特定字母的列名的數據框中的列,因爲我無法在此找到任何信息?目前,我有下面的代碼,它創建了一個數據幀,看起來如下:刪除數據框中的列根據標題中是否有特定字母

dates  BETA0  BETA1  BETA2  BETA3 SVEN1F01 \ 
0 2015-06-17 5.06404203 -4.82869948 -4.40587372 -4.63038436 1.0273 
1 2015-06-16 5.21759473 -5.10202006 -4.06913368 -5.23883082 1.1137 
2 2015-06-15 5.25192065 -5.08400946 -4.34674471 -5.25279453 1.1193 
3 2015-06-12 5.38755314 -5.17612353 -4.53605822 -5.62290340 1.1443 

我想刪除其在他們的信F所有列標題。我打算使用df.drop([df.columns[[column_names]]], axis=1)來做這件事,但有很多我想知道是否有更簡單的方法來做到這一點。

from bs4 import BeautifulSoup 
import urllib.request 
import requests 
from itertools import islice 
import pandas as pd 

r = requests.get(
    "http://www.federalreserve.gov/econresdata/researchdata/feds200628_1.html") 
soup = BeautifulSoup(r.content) 

data = soup.find('table', attrs={'rules': 'all'}) 
h = data.find_all("th", scope="col") #Issue 
final = [[t.th.text] + [ele.text for ele in t.find_all("td")] for t in h[-1].find_all_next("tr")] 
headers = [th.text for th in h] 

headers.insert(0,"Date") 
df = pd.DataFrame(final,columns=headers) 

print(df) 

謝謝

回答

1
df_filtered = df[list(filter(lambda x: "F" not in x, df.columns))] 
+0

導致錯誤'KeyError異常:<濾鏡對象在0x0000000009AB7B00>' – user131983

+1

@ user131983,它的工作在我的機器上。無論如何,我已經更新了我的回覆。看看它是否適合你。 –

相關問題