簡體   English   中英

Python / Pandas - 刪除以字符串開頭的列

[英]Python / Pandas - Drop columns that start with string

我有這樣的數據幀

id    2013 Profits   2001 Revenues    1999 Assets...
31    xxxx           xxxx             xxxx
...

我想刪除不以'201'開頭的列(我只想保留數據2010和轉發)。

我怎樣才能做到這一點?

使用pd.DataFrame.filter

df.filter(like='201')

   2013 Profits
id             
31         xxxx

正如@StevenLaan指出的那樣,使用like會包含一些列,這些列在列名中的其他位置具有模式字符串。 我們可以確保只使用regex獲取以模式字符串開頭的列。

df.filter(regex='^201')

   2013 Profits
id             
31         xxxx

這將確保僅保留以201開頭的列。

df[[c for c in df.columns if c.startswith('201')]]

同樣可以實現

df.filter(regex='^201')

另一種方式:

In [16]: df.loc[:, df.columns.str.contains('^201')]
Out[16]:
  2013 Profits
0         xxxx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM