1
我有一个带有字符串值的熊猫数据框,我希望能够返回其中包含某些子字符串的数据框的子集。这是很容易在这样一个系列(例如改编自熊猫文档)做:在包含子串的熊猫数据框中查找值
import pandas as pd
import numpy as np
s4 = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat'])
s4[s4.str.contains('A', na=False)]
0 A
3 Aaba
6 CABA
dtype: object
我希望在一个数据帧的所有列搜索字符串工作一样的系列,但也有没有.str数据框的方法。您可以过滤数据帧的字符串像这样的精确匹配:
df = pd.concat((s4, s4.shift(1)), axis=1)
0 1
0 A NaN
1 B A
2 C B
3 Aaba C
4 Baca Aaba
5 NaN Baca
6 CABA NaN
7 dog CABA
8 cat dog
filtered_df = df[df == 'Baca']
0 1
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 Baca NaN
5 NaN Baca
6 NaN NaN
7 NaN NaN
8 NaN NaN
result = df[df contains 'ac']
我希望将返回同样的事情filtered_df = df[df == 'Baca']
但它是无效的语法。我尝试使用df.apply将series.str.contains方法应用于数据框的每个系列。如果这是一个可行的解决方案,我无法解决这个问题。我在Linux/Ubuntu上使用python 3.5和pandas 0.18。
相关:http://stackoverflow.com/questions/26640129/search-for -string-进全大熊猫-数据帧列和过滤器 –