过滤Pandas数据帧的最简洁方法?

时间:2016-05-22 13:46:14

标签: python pandas

的Python:

pd.read_csv("CME-datasets-codes.csv", header=None)

产地:

    0               1
0   CME/OH2014      Oats Futures, March 2014, OH2014, CBOT
1   CME/HGG2004     Copper Futures, February 2004, HGG2004, COMEX
2   CME/BRH2014     Brazilian Real (BRL/USD) Futures, March 2014, ...
3   CME/F5H2014     PJM PPL Zone Off-Peak Calendar-Month Day-Ahead...
4   CME/PDMU2016    MISO Indiana Hub Day-Ahead Peak Calendar-Month...

我想过滤这个以显示第0列中以“CME / C”开头的所有行。

什么是最干净的方式?

3 个答案:

答案 0 :(得分:8)

df[df[0].str.startswith('CME/C')]

答案 1 :(得分:2)

你可以这样做:

df[df.0.str[:5]=="CME/C"]

答案 2 :(得分:2)

简单易行的路线

df[df['column_name'] == value]

乍一看,这只能捕获平等,但实际上,任何矢量化函数在技术上都可以应用于此。因此,您可以使用:

df[df['column_name'].str.startswith('CME\/C')]

还有其他方法,例如遮蔽,看起来更优雅一些。然而,它们既不是更有效,也不一定是值得的。有时,丑陋是要走的路;)