在tex中按文本对数据帧进行切片

2024-06-16 11:25:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,看起来像这样:

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中保留包含col2中的6文本的所有元素

因此,预期结果应该包含['U2', 'U3', 'U4']或是一个如下所示的数据帧:

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

有人能帮我怎么做吗?请我正在寻找最有效和通用的代码,因为我的数据帧非常大。


Tags: 数据importdataframepandasdfdataascol2
1条回答
网友
1楼 · 发布于 2024-06-16 11:25:01

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

相关问题 更多 >