【问题标题】:slicing a dataframe by text within a text在文本中按文本切片数据框
【发布时间】:2019-04-09 14:12:58
【问题描述】:

我有一个如下所示的数据框:

import pandas as pd

saf_data = {'col1': ['U1', 'U2', 'U3', 'U4'], 'col2': ['1', '2|6', '4a|6a', '6b']}

saf_df = pd.DataFrame(saf_data)

我想做以下事情

  1. 保留col1 中所有包含“文本”6 的元素到col2

所以预期的结果应该包含['U2', 'U3', 'U4'] 或者是一个看起来像这样的数据框:

 col1   col2
0   U2    2|6
1   U3  4a|6a
2   U4     6b

有人可以帮助我如何做到这一点吗?请我正在寻找最有效和最通用的代码,因为我的数据框很大。

【问题讨论】:

    标签: python pandas slice data-analysis


    【解决方案1】:

    IIUCstr.contains

    saf_df[saf_df.col2.str.contains('6')]
    Out[51]: 
      col1   col2
    1   U2    2|6
    2   U3  4a|6a
    3   U4     6b
    

    既然你提到你的df 很大,我建议在这里使用for loop,看下面的时间

    %timeit saf_df[saf_df.col2.str.contains('6')]
    10 loops, best of 3: 20.1 ms per loop
    %timeit saf_df[['6' in x for x in saf_df.col2]]
    100 loops, best of 3: 3.14 ms per loop
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-15
      • 2018-01-15
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      相关资源
      最近更新 更多